Maven 어셈블리 플러그인에서 생성 한 전쟁 이름을 어떻게 변경할 수 있습니까?


87

이름을 1.0.snapshot-jar-with-dependencies다른 이름으로 변경하려면 어떻게해야합니까? 아래는 내 POM의 내용입니다.

<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.2-beta-5</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.package.example.MainClass</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
        </plugin>
    </plugins>
</build>

답변:


168

의 구성에서 다음을 사용하십시오 maven-assembly-plugin.

<configuration>
  <finalName>custom-name</finalName>
  <appendAssemblyId>false</appendAssemblyId>
</configuration>

assembly:singlemojo 의 공식 문서에 자세한 내용이 있습니다.


8
조립 : 조립 사용되지 않으며, 사용하시기 바랍니다 조립 : 단일
lordB8r

"dir"형식 설명자와 함께 assembly : single을 사용할 때도 매우 유용합니다. "."사용 지정된 outputdir이 true output dir임을 의미합니다.
Peter Kahn

88

finalNamepom에 속성 을 지정하여이를 달성 할 수 있습니다.

<build>
    <finalName>something-else</finalName>
    ...
</build>

4
다시 내가 빌드 오류가 뭔가 - 다른 항아리-와 의존성이 일을, 내가 항아리-와 의존성을 제거 할 수있는 방법, 나는 descriptorRefs를 삭제 얻을
간달프 StormCrow

7
실제로 <appendAssemblyId>false</appendAssemblyId>Pascal이 제안한 태그 가 필요합니다 .
폭풍우

이 이름에 접미사가 추가됩니다.
Martin Serrano

5

종속성이있는 JAR 패키지의 경우 작동하지 않습니다. 종속성 플러그인을 사용하여 수정합니다.

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>project.group.id</groupId>
                                <artifactId>artifact-id</artifactId>
                                <version>0.0.1-SNAPSHOT</version>
                                <type>jar</type>
                                <overWrite>true</overWrite>
                                <outputDirectory>${basedir}/some/dir</outputDirectory>
                                <destFileName>custom-name.jar</destFileName>
                            </artifactItem>
                        </artifactItems>
                        <overWriteReleases>false</overWriteReleases>
                        <overWriteSnapshots>true</overWriteSnapshots>
                    </configuration>
                </execution>
            </executions>
        </plugin>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.