2017-08-07 191 views
0

添加到程序集zip的依赖关系jar将“SNAPSHOT”版本添加到其名称中。有没有办法从${artifact.baseVersion}只得到version号码没有SNAPSHOTmaven程序集插件:从依赖关系中删除SNAPSHOT

这在maven-assembly-plugin内运行。我想依赖关系输出像parent-2.0.jar而不是parent-2.0-SNAPSHOT.jar

assembly.xml

<dependencySets> 
     <dependencySet> 
      <outputDirectory>lib</outputDirectory> 
      <outputFileNameMapping>${artifact.artifactId}-${artifact.baseVersion}.${artifact.extension}</outputFileNameMapping> 
      <includes> 
       <include>www.example.com:parent:jar:2.0-SNAPSHOT</include> 
      </includes> 
      <useProjectArtifact>false</useProjectArtifact> 
     </dependencySet> 
    </dependencySets> 
+0

如果你犯了一个发布版本,这将做......但是你目前只有一个快照版本,这样的结果是个快照的版本...我会改变包括不使用版本.... – khmarbaise

+0

是的,但我不能改变,因为我们只有SNAPSHOT版本。 – ulab

+0

如果你在你的版本中有'-SNAPSHOT',你根本没有发布,只有SNAPSHOT的...... – khmarbaise

回答

0

有这样做取决于您的管道的一些方法。 Maven的插件版本,可以使用

http://www.mojohaus.org/versions-maven-plugin/set-mojo.html

http://www.mojohaus.org/versions-maven-plugin/set-mojo.html#removeSnapshot

像这样的配置将做到这一点,

  <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>versions-maven-plugin</artifactId> 
       <version>2.4</version> 
       <configuration> 
        <newVersion>${project.version}</newVersion> 
        <allowSnapshots>false</allowSnapshots>    
       </configuration> 
     </plugin> 

我建议在profile包裹它,只有激活它在需要的时候。这将在POM中更新project.version。然后,您可以将其提交回购,将其保留原样等等。

您可能还想看看可以处理正则表达式属性等的构建助手插件,如果版本插件不符合您的需求。

http://www.mojohaus.org/build-helper-maven-plugin/usage.html#

+0

这是否适用于assembly插件中引用的'dependency' artificats?因为我想用'SNAPSHOT'离开项目构建版本 – ulab

0

我无法找到一个简单的解决方案。所以我添加了新的属性${client-version}并在assmebly.xml中使用它。

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <client-version>2.0</client-version> 
</properties> 

assembly.xml

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