首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用maven-release-plugin部署程序集包

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

Stack Overflow用户
提问于 2010-02-11 20:26:47
回答 2查看 31.3K关注 0票数 25

我们使用Hudson和maven-release-plugin进行发布构建。现在我有了一个项目,其中包含一个assembly,它将所有需要的组件放在一起,然后将它们打包到一个具有所需目录结构的.tar.gz包中。

现在,我正在尝试让release-plugin在release:perform期间将这个包部署到我们的Maven存储库,但只部署了标准的东西(源、javadoc、POM)。

我已经将组装目标绑定到maven包阶段,并在发布期间构建.tar.gz,但不会将其上载到存储库。有没有提示我哪里做错了?

以下是组装插件的配置:

代码语言:javascript
复制
<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>

我用来构建发行版的命令是

代码语言:javascript
复制
mvn release:prepare release:perform release:clean
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-11 23:55:09

同时,我找到了两种做我想做的事情的方法。

maven-build-helper-plugin允许向应该部署的工件列表中添加额外的条目:

代码语言:javascript
复制
    <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邮件列表上的某个人指出了这一点。简单地使用assembly:single goal而不是asssembly:assembly。这样,生成的工件就会在部署阶段上载到存储库。

代码语言:javascript
复制
    <execution>
        <id>dist-assembly</id>
        <phase>package</phase>
        <goals>
            <goal>single</goal> <!-- that's all :) -->
        </goals>
    </execution>
票数 36
EN

Stack Overflow用户

发布于 2010-02-11 22:36:56

部署文件不是发布插件的一部分,而是部署插件的一部分(发布本身不会将内容部署到任何地方,但您可以将部署插件配置为在发布期间调用)。

通常,deploy插件会将所有构件部署到远程存储库,但程序集不是构件;Maven不能以任何方式使用其存储库中的.tar.gz归档文件,因此一开始部署它们就没有意义。

如果您坚持要将无用的文件复制到存储库中,则必须使用deploy:deploy-file (see the docs)手动部署一个文件,并配置该插件的执行,以便在发布步骤中调用它。但我仍然建议你不要这么做。

您可能正在寻找的是一种自动将程序集上传到某个位置的方法。我不知道有什么插件可以做到这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2244344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档