16

我有一个包含带有时间戳的快照工件的存储库。

我想创建一个包含依赖项的程序集。这工作正常。但工件名称包含时间戳。所以我想知道如何仅从程序集的文件名中删除时间戳。

我用过这个dependencySet

<outputFileNameMapping>${artifact.artifactId}-${artifact.version}.${artifact.extension}</outputFileNameMapping>

但是版本接缝已经包含时间戳。那么有没有机会获得1.1.1-SNAPSHOT而不是1.1.1-20100323.071348-182

我正在使用 maven-assembly-plugin 的 2.2-beta-4 版本。

4

2 回答 2

25

您可以尝试以下方法outputFileNameMapping

${artifactId}-${baseVersion}.${extension}

根据MA​​SSEMBLY-67MASSEMBLY-91 之类的问题:

${baseVersion}在您希望保留 -SNAPSHOT 命名的情况下,该插件保留了用于 timestamp-buildnumber 命名的能力,${version}这对于描述程序集中包含的确切库版本很有用。

更新:从 OP 反馈后,确切的语法是(不完全确定):

${artifact.artifactId}-${artifact.baseVersion}.${artifact.extension}
于 2010-03-25T20:10:31.570 回答
2

我在尝试使用包含带有版本号的文件夹的程序集插件构建捆绑包时遇到了类似的问题(我正在打包 WSDL 和 XSD)。

我发现的解决方法非常简单,我将实际版本号放在一个属性中(例如 1.0),这使得它可以在程序集插件的 bundle.xml 文件中使用,并将 pom 版本设置为:

<version>${service.version}-SNAPSHOT</version>

这样我的包的内容就不会受到 SNAPSHOT 标记的影响,特别是在发布时它不会被修改。

于 2011-12-09T11:33:00.120 回答