从哈德森那里获取所有Maven文物

时间:2009-11-17 23:46:47

标签: maven-2 ant hudson maven-plugin

我有一个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作为工件)。

2 个答案:

答案 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约定重命名。如果您根据此工件进行了下游构建,那么需要注意一点。