본문 바로가기

All

[서적 핵심 정리] 메이븐 아키타입 메이븐 아키타입사용자가 생성한 별도의 아키타입을 이용하여 pom.xml 및 프로젝트 샘플을 제공할 수 있음아키타입 생성 절차프로젝트 디렉토리 구조 및 pom.xml 파일 생성archetype 플러그인의 create-from-project 골 실행메이븐 공통 저장소(Nexus)에 생성한 archetype 배포추후 프로젝트 생성 시, 생성한 archetype 사용하여 프로젝트 생성 출처: 자바 세상의 빌드를 이끄는 메이븐 (박재성 저) 더보기
[서적 핵심 정리] Maven 사내 저장소 설치 및 활용 앤트런 플러그인 (maven-antrun-plugin)메이븐에서 앤트 명령어를 사용할 수 있게 해주는 플러그인 넥서스 - 메이븐 내부 저장소 (Nexus)내부 메이븐 저장소의 이점라이브러리 버전 충돌 최소화3자 라이브러리 사용 시 내부 저장소에 저장 가능의존 관계 라이브러리를 하나의 저장소로 관리 가능중앙저장소의 프록시 역할을 수행하므로, 초기 빌드 시간 단축넥서스 저장소 종류프록시 (proxy)메이븐 공개 저장소의 프록시 역할을 수행하는 저장소호스티드 (hosted)3자 라이브러리 관리 용도버추얼 (virtual)등록된 저장소에 대해 다른 URL로 접근 가능하게 하기 위한 가상의 저장소저장소 그룹 (group)설정한 저장소의 그룹넥서스 저장소 설정 방법settings.xml의 엘리먼트에 nexus의 i.. 더보기
자바 세상의 빌드를 이끄는 메이븐 메이븐저자박재성 지음출판사한빛미디어 | 2011-03-21 출간카테고리컴퓨터/IT책소개실제 프로젝트로 학습하는 생생한 메이븐 활용 전략!『메이븐』은 ... 정확히 4월 5일 구입해서 4월 7일 현재 70%가량 읽은 책... 처음엔 단순히 현재 하고 있는 작업에 도움이 될까 싶어서 구입하긴 했는데 읽으면서 "아... 아직까진 내가 전산에 열정이 있긴 하나보다..." 싶은 생각을 가지게 만든... 솔직히 스스로도 책 읽는 속도에 대해 놀란 감이 있다... ㅋㅋ 메이븐과 관련된 내용을 프로젝트를 실제로 진행하는 과정을 예로 들며 쉽게 풀어놓았으며메이븐에 대한 지식이 전무한 사람도 쉽게 볼 수 있도록 설명이 되어 있는 점이 마음에 든다. 모든 컴퓨터 관련 서적이 그렇듯이이 책만 가지고 모든 것이 해결되진 않겠지.. 더보기
[서적 핵심 정리] Maven 모듈 상속 (inheritance)메이븐에서 모든 POM 파일은 최상위 POM을 상속받음메이븐 상속 기능을 사용하기 위해서는 부모 POM 파일의 엘리먼트의 값을 pom으로 설정 집합 (aggregation)일반적으로 프로젝트가 커지면 여러 개의 프로젝트로 분리하나, 각 프로젝트 사이의 공통 모듈이 존재하므로, 메이븐을 사용 시 이러한 방식보다는 프로젝트를 여러 개의 모듈로 분리하는 것이 좋음하나의 프로젝트에 있는 여러 개의 모듈을 빌드할 때, 같은 단위로 빌드할 수 있도록 지원하는 기능 엘리먼트로 설정 의존 관계 (dependency)모듈 사이 의존관계가 발생시 설정라이브러리 등록과 동일한 방식으로 설정 () dependency 플러그인의 copy-dependencies 골특정 디렉토리에 배포된 파일을 복사할.. 더보기
[서적 핵심 정리] 리포팅 기능을 활용한 문서 관리 언더커버 (undercover-maven-plugin)단위 테스트 테스트 소스 커버리지 리포트 툴 파인드 버그 (findbugs-maven-plugin)정적 소스 코드 분석 툴버그 발생 가능성이 있는 코드, 나쁜 개발 습관으로 작성한 코드, 성능에 영향을 미칠 것으로 생각하는 코드에 대한 정보를 제공 PMD 리포트 (maven-pmd-plugin)정적 소스 코드 분석 툴애플리케이션별로 제공하는 룰셋이 있어, 이를 설정할 수 있음 CPD 리포트 소스 내에 존재하는 중복 코드를 찾아주는 툴PMD 툴에 포함되어 있음 (pmd:cpd 골을 실행) 제이디펜드 리포트 (jdepend-maven-plugin)소스코드의 복잡도를 분석하는 툴주요 용어클래스와 인터페이스 수TC : 패키지가 포함하는 클래스/인터페이스 수C.. 더보기
[서적 핵심 정리] Maven 프로파일, 배포 빌드 이식성특별한 수정이나 변경없이 다양한 환경에 배포/운영이 가능함이식성을 확보해야 하는 예데이터베이스 설정로깅 설정프레임워크와 관련한 설정서버 설정컴파일러 설정 프로파일 서로 다른 환경에서의 설정을 관리할 수 있도록 메이븐에서 제공하는 기능 엘리먼트 하위의 엘리먼트를 통해 프로파일 id를 정할 수 있으며, 엘리먼트 내에 property 형태로 각 프로파일마다 사용하는 설정값을 지정할 수 있음 배포 (Tomcat 플러그인, Cargo 메이븐 플러그인)Tomcat 플러그인을 이용하여 개발 서버에 직접 war 파일을 배포할 수 있음tomcat-maven-plugin 을 메이븐 플러그인으로 설정톰캣 서버의 manager를 추가 (tomcat-users.xml 파일 편집)tomcat 플러그인의 deploy 골.. 더보기
[서적 핵심 정리] Maven과 데이터베이스 통합 단위 테스트익히 알려진 대로, 단위 테스트는 개별 소스 단위의 모듈/메소드 등이 원하는 대로 동작하는지 검증하는 테스트를 의미따라서, 아래와 같이 외부 시스템이 포함되는 테스트의 경우, 원칙적으로는 단위 테스트로 보지 않음 (Working Effectively with Legacy Code, Michael C. Feathers)데이터베이스에 하는 테스트네트워크와 통신하는 테스트파일 시스템에 하는 테스트테스트를 실행할 때 추가적인 작업이 필요한 테스트 (설정 파일 수정 등)단, 웹 개발 프로젝트 등에서 데이터베이스를 배제한 단위 테스트는 현실적으로 어려움 메이븐 SQL 플러그인 (sql-maven-plugin)execute Goal을 통해 파일에서 관리하는 모든 SQL 문을 실행할 수 있도록 지원따라서, .. 더보기
[서적 핵심 정리] Maven과 이클립스 통합 메이븐 플러그인 소개 페이지참고 : https://maven.apache.org/plugins/maven-compiler-plugin/Goal Overview나 Usage를 살펴, 플러그인의 용도나 용법을 알 수 있음Required Paramters나 Optional Parameters를 활용하여 설정 값을 설정할 수 있음 메이븐 플러그인 설정POM의 엘리먼트에 플러그인의 , , 등을 명시 엘리먼트 하위의 엘리먼트를 사용하면 플러그인의 기본 설정을 변경 가능예) 소스 컴파일러 버전을 JDK 6으로 지정: 1.6 메이븐으로 생성한 프로젝트를 이클립스 프로젝트로 변경mvn eclipse:eclipsepom.xml 파일에 설정 엘리먼트는 이클립스 프로젝트의 .classpath 파일(프로젝트의 자원 정보를 기술.. 더보기
[서적 핵심 정리] Maven 의존 라이브러리 관리 메이븐 저장소중앙 저장소오픈 소스 라이브러리, 메이븐 플러그인, 메이븐 아키타입 관리http://repo1.maven.org/maven2/개발자 임의로 라이브러리 배포 불가원격 저장소사내 원격 저장소 또는 별도의 3자 업체에서 제공하는 저장소로컬 저장소개발자 PC의 저장소 메이븐 저장소 설정 엘리먼트 설정을 통해 추가 저장소를 설정 가능 메이븐 의존 라이브러리 관리 엘리먼트 설정을 통해 라이브러리 설정 엘리먼트의 의존성 관리예1) [3.8, 4.8): 3.8 버전을 포함하고, 4.8보다 작은 버전을 사용예2) LATEST/RELEASE - 가장 최신 버전 사용개발중인 라이브러리에 SNAPSHOT 접미어 사용 시, 매 빌드 시 최신 버전의 라이브러리 다운로드 엘리먼트의 속성compile : 해당 라이브러리.. 더보기
[서적 핵심 정리] Maven 라이프사이클 Maven 라이프사이클메이븐은 프로젝트의 각 단계별 빌드 과정을 라이프사이클로 미리 정의하고 있음기본 라이프 사이클: 소스 컴파일, 테스트, 압축, 배포 등을 담당compile: 소스 코드 컴파일test: 단위테스트 실행package: jar, war 등으로 압축install: 로컬 저장소에 압축한 파일 배포deploy: 원격 저장소(메이븐 저장소)에 압축한 파일 배포clean 라이프 사이클: 모든 산출물 삭제 (target 디렉토리 삭제)cleansite 라이프사이클: 프로젝트에 대한 문서 사이트 생성site: 문서 사이트 생성site-deploy: 문서 사이트를 설정된 서버에 배포 Maven 페이즈와 플러그인메이븐 페이즈는 메이븐 플러그인을 통해 실행됨메이븐 플러그인 설정pom.xml의 에 사용하고자.. 더보기