Maven:如何使用没有时间戳文件名的快照工件创建程序集?

时间:2010-03-25 15:28:48

标签: maven-2 assemblies versioning maven-3 artifacts

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

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

我已经使用了这个 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版本。

2 个答案:

答案 0 :(得分:24)

您可以针对outputFileNameMapping尝试以下内容:

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

根据MASSEMBLY-67MASSEMBLY-91

等问题
  

在您希望保留-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标记的影响,特别是在发布时不会修改它。