2011-12-14 66 views
4

我想用分類器部署Maven工件。由於我需要源代碼和JAR(我正在使用GWT),我想獲得artifact-version-classifier.jarartifact-version-classifier-sources.jar。但是,它對於編譯的JAR可以正常工作,但對源代碼不起作用(輸出源JAR的名稱錯誤)。Maven部署+源分類器

這是我到目前爲止的配置:

<plugin> 
    <artifactId>maven-jar-plugin</artifactId> 
    <configuration> 
     <classifier>prod</classifier> 
    </configuration> 
</plugin> 

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-source-plugin</artifactId> 
    <executions> 
     <execution> 
      <id>attach-sources</id> 
      <goals> 
       <goal>jar</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <finalName>${project.build.finalName}-prod</finalName> 
    </configuration> 
</plugin> 

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-deploy-plugin</artifactId> 
    <configuration> 
     <classifier>prod</classifier> 
    </configuration> 
</plugin> 

這是我得到mvn deploy輸出:

Uploading: http://juicebox:8080/archiva/repository/snapshots//ar/com/nubing/afip-connector/1.0-SNAPSHOT/afip-connector-1.0-SNAPSHOT-prod.jar 
237K uploaded (afip-connector-1.0-SNAPSHOT-prod.jar) 

但是這其中有一個錯誤的名稱:

Uploading: http://juicebox:8080/archiva/repository/snapshots//ar/com/nubing/afip-connector/1.0-SNAPSHOT/afip-connector-1.0-SNAPSHOT-sources.jar 
228K uploaded (afip-connector-1.0-SNAPSHOT-sources.jar) 

回答

6

不幸的是,附加一個源JAR與任意分類器是不支持的sou rce插件。當源工件是attached時,分類器是hardcoded(源插件的2.1.2版本)。

您可以通過獲取源插件來生成JAR但不附加,並將其附加到build helper pluginattach artifact目標中來解決此問題。

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 
    <version>1.7</version> 
    <executions> 
     <execution> 
      <id>attach-source-jar</id> 
      <phase>package</phase> 
      <goals> 
       <goal>attach-artifact</goal> 
      </goals> 
      <configuration> 
       <artifacts> 
        <artifact> 
         <file>${project.build.directory}/${project.build.finalName}-prod-sources.jar</file> 
         <type>jar</type> 
         <classifier>prod-sources</classifier> 
        </artifact> 
       </artifacts> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 
+0

謝謝。它工作得很好,你救了我很多小時! – 2011-12-14 12:58:43

4

使用與prunge相同的解決方法。但這不再是必要的。這是2012年6月在2.2版中修復的reported Bug:請設置屬性<classifier>。用2.2.1進行測試。