布署组件封装行家离型插件
-
19-09-2019 - |
题
我们使用哈德森和行家释放小插件做发布版本。现在我有一个包含放在一起的所有所需成分和装配项目然后将它们打包成包名为.tar.gz具有所需的目录结构。
现在我试图得到释放,插件的释放过程中部署这个包我们的Maven仓库:执行目标,但只有标准的东西(来源的javadoc,POM)部署
。我已经绑定的组装目标maven的封装阶段,以及名为.tar.gz得到释放过程中建立,但没有上传到存储库。任何暗示什么,我做错了什么?
下面是组装插件配置:
<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
解决方案
同时,我发现做我想要的2种方式。
在行家建造辅助的插件可以附加项添加到工件的列表应该部署:
<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>
另一种是一样简单,因为它得到和有人在行家用户邮件列表指出了这一点。使用简单的组装:单一的目标,而不是asssembly:组装。这种方式所产生的伪像在部署阶段上传到存储库。
<execution>
<id>dist-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal> <!-- that's all :) -->
</goals>
</execution>
其他提示
部署文件不是插件发布的一部分,但部署插件(版本本身不部署在任何地方的东西,但你可以配置部署插件释放过程中被调用)。
一般情况下,部署插件将所有工件部署到远程存储库,但组件是不伪影; Maven可以不在其以任何方式使用库名为.tar.gz归档文件,因此它没有意义对他们在第一时间部署。
如果你坚持到无用的文件复制到存储库中,你必须使用deploy:deploy-file
(的见文档)手动部署一个文件,并与执行配置插件期间释放步骤调用它。不过我还是建议反对。
什么你可能寻找的是能够自动上传的地方组装的方式。我不知道,这是否一个插件。
不隶属于 StackOverflow