스프링 부트 제어 대상 JAR 파일 이름
My Spring Boot 프로젝트에는 다음과 같은 빌드 설명이 있습니다.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.18.1</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.app.MainClass</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
JAR 파일명은app-1.0-SNAPSHOT.jar
한 지점에서1.0-RELEASE.jar
Jenkins에 의해 제어되는 또 다른 버전에서는 (일종의 mvn 설정 또는 -D와 같은 JVM 인수를 사용하여)
이거 해도 돼요?
아주 간단해, 한 지점에pom.xml
와 함께
<build>
<finalName>app-1.0-SNAPSHOT</finalName>
</build>
다른 브랜치에서는pom.xml
와 함께
<build>
<finalName>1.0-RELEASE</finalName>
</build>
다음과 같이 프로젝트의 버전을 빌드 이름으로 전파할 수 있습니다.
<build>
<finalName>app-${project.version}</finalName>
</build>
또는 상위 프로젝트의 버전(있는 경우)을 클릭합니다.
<build>
<finalName>app-${parent.version}</finalName>
</build>
그런 다음 빌드 이름 대신 프로젝트 버전을 추적합니다.
단, 브런치를 사용하여 SCM에서 빌드버슨을 관리하는 것은 매우 번거롭고 오류가 발생하기 쉽습니다.코드 저장소는 빌드 버전에 구애받지 않는 것이 좋습니다.
가능한 대안은 다음과 같은 릴리스 관리 도구를 사용하는 것입니다.maven release plugin
또는 보다 심플한maven version
.
예:
여기에서는, 다음의 예를 나타냅니다.maven verion
.
예를 들어 SCM 툴을 사용하고 있다고 가정해 봅시다(그럴 가능성이 있습니다).git
및 빌드 팩토리(예:Jenkins
기타 툴)을 사용합니다.스냅샷을 빌드 및 배포하는 작업과 릴리스용 스냅샷을 구축한다고 가정합니다.
스냅샷 작업에서 다음과 같은 maven 대상을 사용하여 사전 빌드 태스크를 설정할 수 있습니다.
versions:set -DnewVersion=app-1.0-SNAPSHOT
및 릴리스 작업의 다음 항목을 지정합니다.
versions:set -DnewVersion=app-1.0-RELEASE
이 작업은 로컬에서만 수행되며 코드의 빌드 버전을 관리할 필요가 없기 때문에 문제 없습니다.
이제 신청 후 (릴리스) 버전에 태그를 붙일 수 있습니다.maven version
성공적인 구축(유닛, 통합 및 기능 테스트 포함)을 지원합니다.이렇게 하면 각 릴리스에 배치된 코드를 정확하게 추적할 수 있습니다.
팁!! 공간은 돈이다!스냅샷 저장소를 정기적으로 청소합니다.가끔 그렇게 하는 직업을 만드는 것은 그리 어렵지 않을 것이다.
artefact-name은 maven 부트플러그인으로 지정할 수 있습니다.
이 경우, 그것은NewJarName.jar
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<finalName>NewJarName</finalName>
</configuration>
</execution>
</executions>
</plugin>
언급URL : https://stackoverflow.com/questions/37698473/spring-boot-control-target-jar-file-name
'source' 카테고리의 다른 글
postgresql을 사용하여 wordpress를 설치하는 방법 (0) | 2023.04.01 |
---|---|
Oracle 스토어드 프로시저를 실행하는 방법 (0) | 2023.04.01 |
후크를 사용하여 어레이에서 객체 삭제(useState) (0) | 2023.04.01 |
JSON.parse('1234')가 1234를 반환하는 이유는 무엇입니까? (0) | 2023.04.01 |
JavaScript를 사용하여 서버에서 텍스트 파일을 읽는 방법 (0) | 2023.04.01 |