반응형
eGov 개인빌드(Maven)
Maven 개요
*의존성관리, 라이브러리 관리, 빌드 생명 주기 및 단계 객체 모델을 갖는 프로젝트 관리 도구
*불필요한 설정을 최소화한다는 개념아래 Ant와 같은 빌드 기능을 제공.
Maven 장점
* 뛰어난 의존성 관리(의존성 자동 업데이트 및 일괄관리)
* 모든 프로젝트에 쉽게 적용가능
* 플러그 인을 통한 확장성
* 간단한 설정을 통한 배포 관리
* Java, C++등 다수 지원
Maven 단점
* repository 관리의 불편함(3rd 파티 라이브러리등 미제공 라이브러리들이 있음)
* pom.xml 파일 관리(파일 하나에서 관리함으로 길고 장황하게 될 수 있음)
* 프로젝트에 특화된 복잡한 빌드기능 제약(프로젝트 전체를 빌드함으로, 세부 항목 또는 특화된 빌드환경에 대한 지원이 미약함)
Maven 아키텍처
* Project Object Model : 프로젝트 객체 모델(POM), 메이블 엔진 내장 + POM.xml파일에서 제공
* Dependency Management Model : 종속성 관리 모델, 로컬 및 리모트 저장소를 이용
* Project life cycle and phases : 프로젝트 생명 주기 모듈, 메이븐 엔진을 플러그인을 통해 파일을 다루는 모든 작업을 수행
Maven 디렉터리 구조
정규화된 디렉터리 구조를 제공하며, 모든 소스 파일들은 /src 하위에 위치하며, 빌드 된 output은 /target 하위에 위치함
빌드 Life Cycle
Maven 생명주기 단계는 순서에 따라 순차적으로 실행된다.(ex mvn install 명령 실행시 generate-sources, compile, test, install 순서로 실행한다.)
Maven Repository
POM에 dependency 설정으로 빌드 및 배포 시에 필요한 라이브러리들을 관리하고 로컬 및 원격 저장소에서 선언된 라이브러리들을 다운로드 받아 사용합니다.
* 1) General Infomation : 프로젝트이름, 설명, 버전 정보 등을 기술
* 2) Organization : 프로젝트 조직 정보, 이름, 홈페이지, URL
* 3) Project Team and Collaborations tools : 형상관리 서버, 이슈 트랙커, 통합 빌드 서버 정보 등
* 4) Build : 인코딩 정보 등 빌드 Lifecycle 환경 설정
* 5) Reporting : 리포트 생성 기능을 설정
* 6) Dependencies : 프로젝트에서 사용하는 라이브러리를 선언하여 Build Path에 포함시킨다.
* 7) Repositories : 라이브러리 저장소 위치 설정
* 8) Distribution Management : 배포 환경 설정
* 9) Profiles : 이식성을 높여주기 위한 빌드 설정
* 10) Properties : 프로젝트 properties를 설정
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>org.springframework.spring-library</artifactId>
<type>libd</type>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.junit</groupId>
<artifactId>com.springsource.org.junit</artifactId>
<version>4.4.0</version>
</dependency>
</dependencies>
반응형
'Java > 전자정부프레임워크(eGov)' 카테고리의 다른 글
Oracle 연동 (0) | 2019.02.13 |
---|---|
5. egov 구현도구의 CI (0) | 2015.09.16 |
4. egov 구현도구의 형상관리 (0) | 2015.09.16 |
3. egov 구현도구의 테스트 도구 (0) | 2015.09.16 |
1. egov 구현도구의 메뉴 및 기능설명 (0) | 2015.09.16 |