Получение всех артефактов Maven от Гудзона - PullRequest
1 голос
/ 18 ноября 2009

У меня есть проект Maven, который является дочерним проектом. У него много одноуровневых проектов, и задача этого проекта - получить ресурсы от братьев и сестер и упаковать их в zip-файл с помощью плагина antrun.

<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 не является артефактом сборки. И, таким образом, в Гудзоне нет ссылки для его загрузки.

Я бы хотел выяснить, как заставить Хадсона распознать это как артефакт Maven, или заставить Maven понять, что ZIP является артефактом. (Раньше у меня отсутствовал элемент упаковки, а затем я получал нежелательный JAR в качестве артефакта).

Ответы [ 2 ]

1 голос
/ 18 ноября 2009

Плагин Build Helper Maven ( цель attach-artifact ) сообщит maven, что для этого проекта необходимо добавить определенный файл в список артефактов maven. Установка упаковки на «пом» является правильным решением в этой ситуации.

Обратите внимание, что если вы запускаете цель "install", ваш zip-файл также будет скопирован в локальный репозиторий maven, но он будет переименован в соответствии с соглашениями maven. Просто кое-что, о чем нужно знать, если у вас есть последующие сборки в зависимости от этого артефакта.

1 голос
/ 18 ноября 2009

Вы можете использовать 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>
...