无法使用 maven-assembly-plugin 设置最终的 jar 名称
Posted
技术标签:
【中文标题】无法使用 maven-assembly-plugin 设置最终的 jar 名称【英文标题】:Can not set the final jar name with maven-assembly-plugin 【发布时间】:2014-01-08 22:24:02 【问题描述】:这就是我配置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>
我希望最终的 jar 文件应该是 myapp.jar
但它最终会是 myapp-jar-with-dependencies.jar
您能告诉我如何配置以将"jar-with-dependencies"
排除在最终名称之外吗?
【问题讨论】:
【参考方案1】:您可以指定finalName
属性为jar 指定您想要的名称,并指定appendAssemblyId
应为false 以避免jar-with-dependencies
后缀。
下面的配置会输出一个名为test.jar
的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>
【讨论】:
你也应该取消注释<descriptorRefs>
的东西,否则你会得到类似的东西:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.4:attached (default) on project ...: Error reading assemblies: No assembly descriptors found.
优秀<appendAssemblyId>false</appendAssemblyId>
这行是必须的。
但这会产生[WARNING] Configuration options: 'appendAssemblyId' is set to false, and 'classifier' is missing
这里是实际的按记录工作更改。 svn.apache.org/viewvc?view=revision&revision=1754566,在issues.apache.org/jira/browse/MASSEMBLY-824中引用(链接在我之前的评论中)。
例如,所描述的解决方案不适用于插件 v2.4 或 v2.2.2。使用 Maven 3.3.9 测试。此外,似乎在 3.x 中完全删除了设置结果装配工件名称的可能性 - 请参阅How to set final jar name with maven-assembly-plugin version 3。总而言之,这个 maven 插件非常令人困惑。以上是关于无法使用 maven-assembly-plugin 设置最终的 jar 名称的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 StorageClass 配置卷 - 无法获取存储帐户的存储密钥
Worklight Studio 和本地开发,有时无法使用 Java 类,有时无法使用 HTML 文件
Ubuntu 80端口无法使用-非root用户无法使用1024以下端口