2013-01-07 35 views
0

我使用maven構建一些安裝到本地.m2和遠程工具庫中的項目。使用maven構建工件時從構件獲取構建編號/日期

我有另一個項目,下載(maven-dependency-plugin:複製)其中一些工件到其本地目標文件夾,然後將它們上傳到文件共享。當我將工件上傳到文件共享時,我需要給它一個buildNumber,如果我重新運行該項目,該buildNumber不應該改變。如何獲取工件的構建編號,例如: artifactory的?

當我瀏覽artifactory中的工件時,它們都具有唯一的buildIds。

+0

爲什麼不使用神器的版本? – khmarbaise

+0

其SNAPSHOT版本,所以不能保證工件是相同的,這是快照的重點,但我需要在上述場景中獲得特定的構建 – u123

回答

0

最好的解決方案可能是使用buildnumber-maven-plugin從VCS等獲取信息並將此信息放入manifest.mf文件中。您可以繼續使用maven-dependency-plugin:copy goal將工件複製到適當的文件夾中。只有在你有SNAPSHOT的情況下,你纔有可能看看這個jar本身。

<build> 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>buildnumber-maven-plugin</artifactId> 
     <version>1.1</version> 
     <executions> 
      <execution> 
      <phase>validate</phase> 
      <goals> 
       <goal>create</goal> 
      </goals> 
      </execution> 
     </executions> 
     <configuration> 
      <doCheck>true</doCheck> 
      <doUpdate>true</doUpdate> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 

您可以定義什麼應該被放入MANIFEST.MF文件類似如下:

<build> 
    ... 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     <version>2.1</version> 
     <configuration> 
      <archive> 
      <manifest> 
       <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
      </manifest> 
      <manifestEntries> 
       <Implementation-Build>${buildNumber}</Implementation-Build> 
      </manifestEntries> 
      </archive> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build>