我有一个Maven项目是一个子项目。它有许多兄弟项目,这个项目的工作是从兄弟姐妹那里获取资源,并使用antrun插件将它们打包成zip文件。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>SystemOfRegistries</artifactId>
<groupId>someGroup</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>someGroup</groupId>
<artifactId>deploy-data</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<configuration>
<tasks>
<!--
Place any Ant task here. You can add anything you can add
between <target> and </target> in a build.xml.
-->
<zip destfile="${project.build.directory}/${build.finalName}.zip"
whenempty="fail">
<zipfileset dir="${project.parent.basedir}/build/AG" prefix="ag"/>
</zip>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
这适用于制作拉链。但是,问题是zip不是构建的工件。因此,Hudson没有链接下载它。
我想知道如何让Hudson将其识别为Maven的工件,或者让Maven意识到ZIP 是工件。 (我曾经缺少包装元素,然后我会将不需要的JAR作为工件)。
答案 0 :(得分:1)
您可以使用builder-helper-maven-plugin
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>${project.build.directory}/${build.finalName}.zip</file>
<type>zip</type>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
答案 1 :(得分:1)
Build Helper Maven插件(attach-artifact goal)将告诉maven应该将特定文件添加到maven的该项目的工件列表中。在这种情况下,将包装设置为“pom”是正确的。
请注意,如果您正在运行“安装”目标,那么您的zip文件也将被复制到本地maven存储库,但它将根据maven约定重命名。如果您根据此工件进行了下游构建,那么需要注意一点。