2011-05-16 64 views
5

我正在嘗試使用Maven生成在Vignette Portal上部署的工件。包裝與war工件完全相同,但文件應該有car擴展名。與汽車擴展的Maven戰爭神器

選項我試過了,我一直沒能完成。

  • 使用戰爭的插件,並重新命名最終神器(保持增加.war擴展名)
  • 使用插件組裝拉鍊描述符(無法更改.ZIP到.CAR擴展)
  • 創建一個新的包裝類型如描述here(不能使用戰爭插件的.car擴展名)

這將是最簡單的'Maven'方式來生成.car文件?你能給我一些指導嗎?

謝謝。

回答

7

我認爲不可能重命名一個項目的主要可交付工件。

無論如何,在過去,我迄今爲止所做的是將maven複製到一個新名稱的文件,然後「附加」到構建的可交付成果;通過配置兩個插件:

  • maven-ant-run複製
  • maven-build-helper爲了安裝與我的項目的主神器一起被部署到我的回購協議。

    <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-antrun-plugin</artifactId> 
        <executions> 
        <execution> 
         <phase>package</phase> 
         <configuration> 
          <target> 
          <copy file="${project.build.directory}/${project.build.finalName}.war" 
           tofile="${project.build.directory}/${project.build.finalName}.car" /> 
          </target> 
         </configuration> 
         <goals> 
         <goal>run</goal> 
         </goals> 
         </execution> 
        </executions> 
    </plugin> 
    

而第二個:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 
    <executions> 
     <execution> 
      <id>attach-instrumented-jar</id> 
      <phase>verify</phase> 
       <goals> 
       <goal>attach-artifact</goal> 
       </goals> 
     <configuration> 
       <artifacts> 
        <artifact> 
        <file>${project.build.directory}/${project.build.finalName}.car</file> 
        <type>car</type> 
        </artifact> 
       </artifacts> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 

我希望能幫助你。至少在你找到更好的解決方案之前。

+0

對於第一個例子,它適用於''配置'是'tasks'而不是'target'的孩子,也許是因爲更新的antrun版本? – 2014-01-28 17:50:44

+0

@jaime是的,可能。 – mschonaker 2014-01-31 15:11:29

+0

@jaime檢查MOJO文檔,看起來像'tasks'已被棄用,而不贊成'target'。 http://maven.apache.org/plugins/maven-antrun-plugin/run-mojo.html – mschonaker 2014-01-31 15:14:54