无法使用maven-assembly-plugin设置最终的jar名称

Tru*_* Ha 60 java maven-3 maven

这就是我配置的方式 maven-assembly-plugin

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <finalName>myapp</finalName>
        <archive>
            <manifest>
                <mainClass>com.myapp.Main</mainClass>
            </manifest>
        </archive>
        <!--
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        -->
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

我希望最终的jar文件应该是,myapp.jar但它最终会结束myapp-jar-with-dependencies.jar

你能告诉我如何配置以排除"jar-with-dependencies"最终名称吗?

sas*_*kad 161

您可以指定该finalName属性以为jar提供所需的名称,并指定该值appendAssemblyId应为false以避免使用jar-with-dependencies后缀.下面的配置将输出一个名为的jartest.jar

         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <finalName>test</finalName>
                <archive>
                    <manifest>
                        <mainClass>com.myapp.Main</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
               <appendAssemblyId>false</appendAssemblyId>
            </configuration>
         </plugin>
Run Code Online (Sandbox Code Playgroud)

  • 你也应该取消注释`<descriptorRefs>`的东西,否则你会得到类似的东西:`[ERROR]无法执行目标org.apache.maven.plugins:maven-assembly-plugin:2.4:附加(默认)项目...:读取程序集时出错:找不到程序集描述符 (9认同)
  • 优秀的`<appendAssemblyId> false </ appendAssemblyId>`这一行是必要的. (4认同)
  • 但是这会产生一个`[WARNING]配置选项:'appendAssemblyId'设置为false,并且'classifier'缺失 (2认同)