簡體   English   中英

使用maven-release-plugin部署程序集包

[英]Deploying assembly package with maven-release-plugin

我們使用Hudson和maven-release-plugin來完成發布版本。 現在我有一個項目,其中包含一個程序集 ,它將所有需要的組件放在一起,然后將它們打包成一個帶有所需目錄結構的.tar.gz包。

現在我正在嘗試使用release-plugin在發布期間將此包部署到我們的Maven存儲庫:執行目標,但只部署標准內容(sources,javadoc,POM)。

我已經將匯編目標綁定到maven包階段,而.tar.gz在發布期間進行構建,但沒有上傳到存儲庫。 我在這里做錯了什么提示?

這是assembly-plugin配置:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2-beta-4</version>
    <configuration>
      <descriptors>
        <descriptor>src/main/assembly/distribution.xml</descriptor>
      </descriptors>
      <finalName>${pom.artifactId}-${pom.version}</finalName>
      <appendAssemblyId>false</appendAssemblyId>
      <tarLongFileMode>warn</tarLongFileMode>
    </configuration>
    <executions>
        <execution>
            <id>dist-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>assembly</goal>
            </goals>
        </execution>
    </executions>
</plugin>

我運行以構建版本的命令是

mvn release:prepare release:perform release:clean

與此同時,我找到了兩種方法來做我想做的事。

maven-build-helper-plugin允許將額外的條目添加到應該部署的工件列表中:

    <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>build-helper-maven-plugin</artifactId>
         <version>1.3</version>
         <executions>
           <execution>
             <id>attach-distribution</id>
             <phase>package</phase>
             <goals>
               <goal>attach-artifact</goal>
             </goals>
             <configuration>
               <artifacts>
                 <artifact>
                   <file>target/${pom.artifactId}-${pom.version}.tar.gz</file>
                   <type>tar.gz</type>
                 </artifact>
               </artifacts>
             </configuration>
           </execution>
         </executions>
       </plugin>

另一個很簡單,maven-user郵件列表上的某個人指出了這一點。 簡單使用程序集:單個目標而不是asssembly:程序集。 這樣,在部署階段,生成的工件將上載到存儲庫。

    <execution>
        <id>dist-assembly</id>
        <phase>package</phase>
        <goals>
            <goal>single</goal> <!-- that's all :) -->
        </goals>
    </execution>

部署文件不是發布插件的一部分,而是部署插件的一部分(發布不會自行部署任何內容,但您可以配置在發布期間調用部署插件)。

通常,deploy插件會將所有工件部署到遠程存儲庫,但程序集不是工件; Maven不能以任何方式在其存儲庫中使用.tar.gz存檔,因此首先部署它們沒有意義。

如果您堅持將無用文件復制到存儲庫中,則必須使用deploy:deploy-file請參閱文檔 )手動部署文件,並使用執行配置插件以在發布步驟中調用它。 但我仍然反對它。

您可能正在尋找的是一種自動上傳裝配的方法。 我不知道有一個插件可以做到這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM