나중에까지 원형을 귀찮게하지 마십시오
Maven에 대해 알아야 할 모든 정보를 보려면 해당 웹 사이트 의 일부 책을 읽으십시오 . 그러나 그것은 달성하려는 것에 약간의 과잉입니다.
시작하려면 다음과 같이 웹 응용 프로그램의 표준 Maven 구조에 따라 웹 응용 프로그램을 레이아웃하십시오. (이를 위해 Maven 아키 타입이 필요하지 않습니다. 표준 폴더 일뿐이므로 2 분 안에 만들 수 있습니다).
src/main/java
-프로덕션 Java 코드를 포함합니다.
src/main/resources
-프로덕션 클래스 경로 리소스를 포함합니다 (예 : Spring 컨텍스트)
src/main/webapp
-(WEB-INF / web.xml을 포함하지만 lib 폴더는 포함하지 않음)
src/test/java
-테스트 자바 코드를 포함
src/test/resources
-테스트 리소스를 포함합니다 (예 : 웹 서비스 테스트를위한 XML 피드 등)
기본 플러그인
다음 단계는 여러 플러그인을 선택하는 것입니다. 일반적으로 용의자는 정리, 컴파일 및 리소스를 지원하는 것입니다 (Maven의 일부로 제공되지만 구성 할 수는 있음). 그런 다음 확실한 단위 테스터와 WAR 플러그인이 있습니다. 아주 기본적인 웹 응용 프로그램을 만들기에 충분합니다.
고급 플러그인
다음 단계는 코드를 철저히 살펴보고 다양한 잠재적 문제를보고하는 Findbugs 및 PMD 플러그인을 소개하는 것입니다. 상호 참조 소스 코드, TODO 및 REFACTOR 태그 추적을위한 taglist 등을위한 JXR이 필요할 수 있습니다. 무엇보다...
... 웹 애플리케이션에 Jetty 플러그인 사용
Jetty 플러그인을 사용하면 IDE 내에서 WAR 파일을 실행하여 쉽게 디버깅 할 수 있습니다. 빠르고 작으며 작업을 빠르게 처리합니다. Maven 빌드의 일부로 Jetty를 사용하면 복잡한 서버 패널을 구성한 IDE가 없어도 모든 시스템에서 프로젝트를 테스트 할 수 있습니다. 또한 다른 WAR 파일에 대한 종속성을 선언 할 수 있으므로 "mvn clean jetty : run"명령 하나만으로 여러 웹 응용 프로그램으로 구성된 완전한 작업 환경을 생성 할 수 있습니다. 이것은 어디서나 작동하며 테스트 JNDI 구성을 제공하여 스프링 주입 데이터 소스가 모두 외부 적으로 구성되도록 할 수 있습니다. 이 Jetty 접근법을 표준 데모 HTML 페이지 (src/test/resources/demo.html
) 현지 환경을 사용하려는 개발자 시간을 절약 할 수 있습니다. 하나의 명령으로 완료되었습니다. 단순한.
IDE 구성
Maven을 사용하면 모든 큰 소년들이 그것을 지원하기 때문에 쉽습니다 : Eclipse, Netbeans 및 물론 개인적으로 좋아하는 Intellij. IDE를 pom.xml로 지정하면 나열된 모든 종속성을 제거합니다. 에 대해 더 이상 고민하지 않아도됩니다 WEB-INF/lib
. Eclipse에서는 일반적으로 File | 가져 오기 ... | 메이븐 프로젝트 | pom.xml.
Hudson과 통합
먼저 Hudson (웹 앱일뿐)을 설치 한 다음 버전 관리 시스템을 대상으로하여 적절한 버전을 확인하십시오. 마지막 단계는 Maven을 사용하여 빌드를 수행하도록 구성하는 것입니다. 분명히 Maven은 빌드 머신에 설치해야합니다 (개발 머신과 다르다고 가정).
허드슨은 스냅 샷 만 빌드합니다
Hudson이 스냅 샷 빌드를 수행하도록하고 릴리스 빌드는 수동 프로세스로 남겨 두십시오. 이 접근 방식을 사용하면 개발자는 스냅 샷 개정판 (예 : 1.0.0-SNAPSHOT)으로 코드를 공유 할 수 있으며 빌드를 전달할 수있는 경우에만 팀 저장소에 공유됩니다. 일반적으로 Hudson은 "mvn clean deploy"를 실행하지만 "site"목표를 포함하면 모든 빌드에 대해 작은 프로젝트 웹 사이트를 생성하므로 프로세스의 일부가 될 수도 있습니다. 팀의 개발자는 Maven 종속성 관리 프로세스를 통해 업데이트 된 스냅 샷 빌드를 프로젝트에 자동으로 포함시킵니다.
Hudson은 모든 방식의 메트릭을 지원할 수있는 다양한 플러그인을 제공합니다. 개인적으로 가장 좋아하는 것은 시간이 지남에 따라 프로젝트 당 통과 테스트 수를 추적하는 것입니다. 단위 테스트 횟수와 범위가 계속 증가하고 있다는 것을 경영진에게 보여주는 것이 좋습니다.
일반 설정 안내
리포지토리를 최소한 다음 구조로 분할하십시오.
- 팀 출시-모든 출시 된 프로덕션 아티팩트는 여기로 이동
- 팀 스냅 샷-모든 스냅 샷 개발 아티팩트
- 타사 릴리스-지원되는 모든 타사 라이브러리 (예 : Spring, Hibernate 등)
개발자 사용자 계정은 팀 리포지토리 (스냅 숏 또는 릴리스)에 쓸 수 없어야합니다. 이를 통해 개발자는 Hudson이 급한 경우 신속하게 표준이 될 경우 Hudson을 우회 할 수 있습니다.
모든 타사의 소스, javadoc 및 SHA 서명을 항상 다운로드하십시오. Jarvana 는 클래스를 찾기 어려운 모든 사람들을위한 훌륭한 저장소 탐색기입니다.
계속 증가하는 저장소를보다 효과적으로 제어 할 수 있도록 Nexus 또는 Artifactory와 같은 저장소 관리자를 설치하십시오.