maven-release-plugin не включает закрашенные артефакты

Я пытаюсь выпустить многомодульный проект с закрашенными артефактами. Когда я запускаю релиз: подготовить, затем выпустить: выполнить, артефакты, загруженные в репозиторий Nexus, включают только исходную банку, а не закрашенную.

Возможно ли, что «выпуск» Maven запускается до жизненного цикла «пакета»?

Я выполняю следующую команду:

mvn release:prepare --batch-mode -Dtag=myproject-1.2.0.0000 -DreleaseVersion=1.2.0 -DdevelopmentVersion=1.2.0 -DremoteTagging=false -DsuppressCommitBeforeTag=true -Dresume=false

мой родительский pom.xml:

<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<name>myproject</name>
<groupId>org.my.project</groupId>
<artifactId>my-project-parent</artifactId>
<version>1.2.0-SNAPSHOT</version>
<packaging>pom</packaging>
<description>myproject</description>

<modules>
    <module>module1</module>
    <module>module2</module>
    <module>distribution</module>
</modules>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.5.1</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>

    </plugins>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.2.1</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.0</version>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.3</version>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.2.1</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.12.3</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>
<dependencyManagement>
    <dependencies>
        <!-- self-dependencies -->
        <dependency>
            <groupId>org.my.project</groupId>
            <artifactId>module1</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.my.project</groupId>
            <artifactId>module2</artifactId>
            <version>${project.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>
<profiles>
    <profile>
        <id>development</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
</profiles>

The pom.xml of the distribution project looks like

<?xml version="1.0" encoding="UTF-8"?>

http://maven.apache.org/xsd/maven-4.0.0.xsd "> my-project-parent org.my.project 1.2.0-SNAPSHOT 4.0.0

<artifactId>distribution</artifactId>
        <dependencies>
            <dependency>
                <groupId>org.my.project</groupId>
                <artifactId>module1</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.my.project</groupId>
                <artifactId>module2</artifactId>
                <version>${project.version}</version>
            </dependency>                
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <executions>
                        <execution>
                            <phase>prepare-package</phase>
                            <goals>
                                <goal>shade</goal>
                            </goals>
                            <configuration>
                                <outputFile>${project.build.directory}/myproject-${project.version}.jar</outputFile>
                                <createSourcesJar>true</createSourcesJar>
                                <filters>
                                    <filter>
                                        <artifact>*:*</artifact>
                                        <excludes>
                                            <exclude>log4j.xml</exclude>
                                        </excludes>
                                    </filter>
                                </filters>
                                <artifactSet>
                                    <includes>
                                        <include>org.my.project:module*</include>
                                    </includes>
                                </artifactSet>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>

The folder on my computer has the shaded artifact, but the artifacts in Nexus repository conatin only the original empty Jar.

Есть ли способ заставить выпуск схватить заштрихованную банку?

Спасибо, Эяль


person Eyal Azran    schedule 11.06.2013    source источник


Ответы (1)


Вы можете попробовать добавить тег <shadedArtifactAttached>true</shadedArtifactAttached> в конфигурацию maven-shade-plugin.

person Guillaume Darmont    schedule 11.06.2013
comment
Привет, Гийом, спасибо! Это решило мою проблему. Однако я использую тег ‹outputFile›, чтобы изменить имя закрашенного артефакта. Этот тег имеет приоритет над ‹shadedArtifactAttached›. Я переместил выполнение плагина тени в проект, названный так, как я хотел, чтобы jar был назван, тогда мне не нужен тег ‹outputFile› и вместо него использовался ‹shadedArtifactAttached›. - person Eyal Azran; 12.06.2013