Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

실행환경에 대한 parent pom/bom(bill of materials) 적용 및 전체 모듈 반영 #161

Open
wants to merge 4 commits into
base: contribution
Choose a base branch
from

Conversation

switchover
Copy link

@switchover switchover commented Sep 18, 2024

수정 사유 Reason for modification

소스를 수정한 사유가 무엇인지 체크해 주세요. Please check the reason you modified the source. ([X] X는 대문자여야 합니다.)

  • 버그수정 Bug fixes
  • 기능개선 Enhancements
  • 기능추가 Adding features
  • 기타 Others

수정된 소스 내용 Modified source

검토자를 위해 수정된 소스 내용을 설명해 주세요. Please describe the modified source for reviewers.

Parent pom for runtime environment modules

실행환경 모듈에 대한 의존성 라이브러리 버전 및 빌드 설정 관리 등의 효율적인 관리를 위하여 parent pom 및 bom을 위한 공통 pom 모듈을 추가합니다.

이 공통 parent pom은 다음과 같이 구성됩니다.

  • 전체 참조 라이브러리에 대한 버전을 속성(properties)로 정의
    • 실행환경을 사용할 때에 해당 속성만 다시 정의함으로써 다른 버전으로 손쉽게 변경
    • 예시) 기존에 정의된 log4j2 v2.20.0 대신 v2.24.0을 사용하기 위해서는 다음과 같이 속성만 변경하면 됨
    <properties>
      <log4j2.version>2.24.0</log4j2.version>
    </properties
  • 기타 다른 속성 사용을 통해 전체 설정 적용 (eg: JavaDoc API Link)
  • <dependencyManagement/> 설정을 통해 각 하위 모듈 정의 또는 사용 시 version 제외로 전체 버전에 대한 통제 가능
    • 예시) 다음과 같이 의존성만 추가하면 parent pom에 정의된 버전이 적용됨
    <dependencies>
      <dependency>
        <groupId>org.egovframe.rte</groupId>
        <artifactId>org.egovframe.rte.fdl.cmmn</artifiactId>
      </dependency>
    </dependencies>
  • <pluginManagement/> 설정을 통해 maven plungin에 대한 version 및 configuration 등의 설정 정보를 공통으로 사용함으로써 개별 모듈에 대한 설정 단순화 가능
    • 예시) 플러그인에 대한 버전 및 설정 정보도 생략 가능
    <!-- 기존 방식 -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-source-plugin</artifactId>
      <version>3.2.1</version>
      <executions>
        <execution>
          <id>attach-sources</id>
          <goals>
            <goal>jar</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
    
    <!-- 신규 방식 -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-source-plugin</artifactId>
    </plugin>

즉, parent pom/bom 적용을 통해 각 모듈은 사용하고자 하는 의존성 라이브러리 및 플러그인에 대한 groupId 및 artifactId만을 지정하고 버전 및 설정을 공통적으로 상속하여 사용할 수 있습니다.

JUnit 테스트 JUnit tests

테스트를 완료하셨으면 다음 항목에 [대문자X]로 표시해 주세요. When you're done testing, check the following items.

  • JUnit 테스트 JUnit tests
  • 수동 테스트 Manual testing

테스트 브라우저 Test Browser

테스트를 진행한 브라우저를 선택해 주세요. Please select the browser(s) you ran the test on. (다중 선택 가능 you can select multiple) [X] X는 대문자여야 합니다.

  • Chrome
  • Firefox
  • Edge
  • Safari
  • Opera
  • Internet Explorer
  • 기타 Others

테스트 스크린샷 또는 캡처 영상 Test screenshots or captured video

테스트 전과 후의 스크린샷 또는 캡처 영상을 이곳에 첨부해 주세요. Please attach screenshots or video captures of your before and after tests here.

Parent pom/bom 적용 후 전체 실행환경 빌드 실행 결과

image

게시판 샘플(egovframe-web-sample) 적용 후 빌드 실행 결과

  • pom.xml 주요 변경 사항 (diff)
image image image
  • 빌드 결과
image ※ `org.egovframe.rte:org.egovframe.rte.bom` pom을 사용하기 위해서는 parent pom이 maven repoistory에 배포되어야 하며, local에서는 실행환경에 대한 `mvn install` 명령을 통해 local repository에 배포해 테스트를 수행함

@eGovFrameSupport
Copy link
Contributor

안녕하세요
전자정부 표준프레임워크 센터입니다.

'24년 7월 29일부터 9월 30일까지 전자정부 서비스 개발 표준 기반인 "전자정부 표준프레임워크" 개선에 민간 SW개발자의 아이디어와 의견을 반영하기 위해 "2024년 전자정부 표준프레임워크 컨트리뷰션"을 개최 하였습니다.

표준프레임워크 깃허브(github.com/egovframework)에 보내주신 귀하의 의견에 감사드리며, 전자정부 표준프레임워크 운영·개선 과정에서 유용하게 활용토록 하겠습니다.
본 설문에 응답 주시면 표준프레임워크에서 마련한 소정의 기념품을 발송 드릴 예정이오니, 문항에 빠짐없이 응답 해 주시기 바랍니다.

앞으로도 전자정부 표준프레임워크에 지속적인 관심 바라오며, 아래 URL 접속, 설문지로 이동하여 항목에 응답 부탁드립니다.
https://forms.gle/6qRXGFZn5WTaxBCK8

※ 컨트리뷰션 종료 후, 시상관련하여 연락 갈 예정이오니, 꼭 통화 가능한 본인번호를 기재해 주시기 바랍니다.
※ 귀하께서 답변해 주시는 내용은 컨트리뷰션 참가 확인 및 기념품 발송 목적으로만 활용되며, 개인정보는 기념품 발송 후 즉시 영구 삭제처리 됩니다.

감사합니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants