Maven-배포 자동화
프로젝트 개발에서 일반적으로 배포 프로세스는 다음 단계로 구성됩니다.
진행중인 모든 프로젝트의 코드를 SVN (버전 제어 시스템) 또는 소스 코드 저장소에 체크인하고 태그를 지정합니다.
SVN에서 전체 소스 코드를 다운로드하십시오.
애플리케이션을 빌드하십시오.
빌드 출력을 WAR 또는 EAR 파일을 공통 네트워크 위치에 저장하십시오.
네트워크에서 파일을 가져 와서 프로덕션 사이트에 배포합니다.
응용 프로그램의 날짜 및 업데이트 된 버전 번호로 설명서를 업데이트했습니다.
문제 설명
위에서 언급 한 배포 프로세스에는 일반적으로 여러 사람이 참여합니다. 한 팀은 코드 체크인을 처리하고 다른 팀은 빌드 등을 처리 할 수 있습니다. 수작업이 수반되고 다중 팀 환경으로 인해 모든 단계를 놓칠 수 있습니다. 예를 들어, 이전 빌드는 네트워크 머신에서 교체 할 수 없으며 배포 팀은 이전 빌드를 다시 배포했습니다.
해결책
다음을 결합하여 배포 프로세스를 자동화하십시오-
- Maven, 프로젝트를 빌드하고 릴리스합니다.
- 소스 코드를 관리하는 SubVersion, 소스 코드 저장소.
- 프로젝트 바이너리를 관리하기위한 원격 저장소 관리자 (Jfrog / Nexus).
프로젝트 POM.xml 업데이트
Maven 릴리스 플러그인을 사용하여 자동화 된 릴리스 프로세스를 만들 것입니다.
예 : bus-core-api 프로젝트 POM.xml.
<project xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>bus-core-api</groupId>
<artifactId>bus-core-api</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<scm>
<url>http://www.svn.com</url>
<connection>scm:svn:http://localhost:8080/svn/jrepo/trunk/
Framework</connection>
<developerConnection>scm:svn:${username}/${password}@localhost:8080:
common_core_api:1101:code</developerConnection>
</scm>
<distributionManagement>
<repository>
<id>Core-API-Java-Release</id>
<name>Release repository</name>
<url>http://localhost:8081/nexus/content/repositories/
Core-Api-Release</url>
</repository>
</distributionManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.0-beta-9</version>
<configuration>
<useReleaseProfile>false</useReleaseProfile>
<goals>deploy</goals>
<scmCommentPrefix>[bus-core-api-release-checkin]-<
/scmCommentPrefix>
</configuration>
</plugin>
</plugins>
</build>
</project>
Pom.xml에서 다음은 우리가 사용한 중요한 요소입니다.
Sr. 아니. | 요소 및 설명 |
---|---|
1 | SCM Maven이 소스 코드를 체크 아웃 할 SVN 위치를 구성합니다. |
2 | Repositories 빌드 된 WAR / EAR / JAR 또는 기타 아티팩트가 코드 빌드 성공 후 저장 될 위치입니다. |
삼 | Plugin maven-release-plugin은 배포 프로세스를 자동화하도록 구성됩니다. |
Maven 릴리스 플러그인
Maven은 다음을 사용하여 다음과 같은 유용한 작업을 수행합니다. maven-release-plugin.
mvn release:clean
마지막 릴리스 프로세스가 성공하지 못한 경우 작업 공간을 정리합니다.
mvn release:rollback
마지막 릴리스 프로세스가 성공하지 못한 경우 작업 영역 코드 및 구성에 대한 변경 사항을 롤백합니다.
mvn release:prepare
다음과 같은 여러 작업을 수행합니다.
커밋되지 않은 로컬 변경이 있는지 여부를 확인합니다.
SNAPSHOT 종속성이 없는지 확인합니다.
애플리케이션의 버전을 변경하고 릴리스 할 버전에서 SNAPSHOT을 제거합니다.
pom 파일을 SVN으로 업데이트합니다.
테스트 케이스를 실행하십시오.
수정 된 POM 파일을 커밋합니다.
Subversion에서 코드에 태그 지정
버전 번호를 늘리고 향후 릴리스를 위해 SNAPSHOT을 추가하십시오.
수정 된 POM 파일을 SVN에 커밋합니다.
mvn release:perform
이전에 정의 된 태그를 사용하여 코드를 확인하고 Maven 배포 목표를 실행하여 전쟁 또는 빌드 된 아티팩트를 저장소에 배포합니다.
명령 콘솔을 열고 C:\ > MVN >bus-core-api 디렉토리를 열고 다음을 실행하십시오. mvn 명령.
>mvn release:prepare
Maven이 프로젝트 빌드를 시작합니다. 빌드가 성공하면 다음을 실행하십시오.mvn 명령.
>mvn release:perform
빌드가 성공하면 저장소에 업로드 된 JAR 파일을 확인할 수 있습니다.