2017-08-07 148 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>