Maven 어셈블리 플러그인을 사용하면이 작업을 수행 할 수 있습니다. 본질적으로 대상 디렉토리의 클래스를 사용하여 처음부터 JAR을 빌드 한 다음 (기존의 복사 된 자원을 이미 포함 할 것임) 새 이름으로 특정 자원의 사본을 추가하십시오.
참고 정확하게 당신이 일반적으로 빌드에서 얻을 것이 무엇 경기를 수동으로 결과 JAR에 pom.properties
및 pom.xml
을 복사해야합니다. 아마도 지나가는 주석 작성자가 자동으로이 작업을 수행하는 방법을 알고있을 것입니다.
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>example</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<!-- Copy all compiled classes and normal copied resources -->
<fileSets>
<fileSet>
<directory>${project.build.outputDirectory}</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
</fileSets>
<files>
<!-- Specifically add renamed file -->
<file>
<source>${basedir}/src/main/resources/example.txt</source>
<destName>example.txt2</destName>
<outputDirectory>/</outputDirectory>
</file>
<!-- Copy files normally included in JAR -->
<file>
<source>${project.build.directory}/maven-archiver/pom.properties</source>
<outputDirectory>META-INF/maven/${project.groupId}/${project.artifactId}</outputDirectory>
</file>
<file>
<source>${basedir}/pom.xml</source>
<outputDirectory>META-INF/maven/${project.groupId}/${project.artifactId}</outputDirectory>
</file>
</files>
</assembly>
참고 :
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>example</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<!-- Make executable JAR -->
<dependencySets>
<dependencySet>
<useProjectArtifact>true</useProjectArtifact>
<unpack>true</unpack>
</dependencySet>
</dependencySets>
<files>
<!-- Specifically add renamed file -->
<file>
<source>${basedir}/src/main/resources/example.txt</source>
<destName>example.txt2</destName>
<outputDirectory>/</outputDirectory>
</file>
</files>
</assembly>
: 당신은 (즉, 모든 종속성 자동 포함하여), 같은 목표를 달성하기 위해 훨씬 더 깔끔한 방법이 항아리-와 의존성 스타일의 출력을 생성하려는 경우
필자는 파일을 복제하거나 추가하는 데 maven을 사용할 수 있다고 생각하지 않습니다. 당신은이 커스텀 appender를 생성하고 그 파일을 타겟에 삽입해야한다. 그 후에 maven은 나중에 빌드하는데 사용할 수있다. – vikeng21