我有一个包含带时间戳的快照工件的存储库。
我想创建一个包含依赖项的程序集。这很好用。但工件名称包含时间戳。所以我想知道如何仅从程序集的文件名中删除时间戳。
我已经使用了这个 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版本。
答案 0 :(得分:24)
您可以针对outputFileNameMapping
尝试以下内容:
${artifactId}-${baseVersion}.${extension}
等问题
在您希望保留-SNAPSHOT命名的情况下使用
${baseVersion}
,插件保留了使用${version}
进行时间戳建立编号命名的功能,这对于描述包含的确切库版本非常有用在集会中。
更新:在OP提供反馈后,确切的语法是(完全不确定):
${artifact.artifactId}-${artifact.baseVersion}.${artifact.extension}
答案 1 :(得分:2)
在尝试使用程序集插件构建一个包时,我遇到了类似的问题,该程序包包含一个包含版本号的文件夹(我正在打包WSDL和XSD)。
我发现的解决方法非常简单,我将实际版本号放在属性(例如1.0)中,这使得它可以在程序集插件的bundle.xml文件中使用,并将pom版本设置为:
<version>${service.version}-SNAPSHOT</version>
这样我的包的内容不受SNAPSHOT标记的影响,特别是在发布时不会修改它。