Maven deploy + исходные классификаторы

Я пытаюсь развернуть артефакт Maven с помощью классификатора. Так как мне нужны и источники, и JAR (я использую его из GWT), я бы хотел получить artifact-version-classifier.jar а также artifact-version-classifier-sources.jar, Тем не менее, он отлично работает с скомпилированным JAR, но не работает с исходными кодами (у JAR для выходных источников неправильное имя)

Это конфигурация, которую я имею до сих пор:

<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <classifier>prod</classifier>
    </configuration>
</plugin>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <executions>
        <execution>
            <id>attach-sources</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <finalName>${project.build.finalName}-prod</finalName>
    </configuration>
</plugin>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <configuration>
        <classifier>prod</classifier>
    </configuration>
</plugin>

И это вывод, который я получаю за mvn deploy:

Uploading: http://juicebox:8080/archiva/repository/snapshots//ar/com/nubing/afip-connector/1.0-SNAPSHOT/afip-connector-1.0-SNAPSHOT-prod.jar
237K uploaded  (afip-connector-1.0-SNAPSHOT-prod.jar)

Но у этого есть неправильное имя:

Uploading: http://juicebox:8080/archiva/repository/snapshots//ar/com/nubing/afip-connector/1.0-SNAPSHOT/afip-connector-1.0-SNAPSHOT-sources.jar
228K uploaded  (afip-connector-1.0-SNAPSHOT-sources.jar)

3 ответа

Решение

К сожалению, присоединение исходного JAR с произвольным классификатором не поддерживается плагином исходного кода. Когда исходный артефакт присоединен, классификатор жестко закодирован ( начиная с версии 2.1.2 исходного плагина).

Вы можете обойти эту проблему, получив исходный плагин для генерации JAR, но не присоединяя его, и прикрепите его с целью присоединения артефакта подключаемого модуля помощника по сборке.

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <id>attach-source-jar</id>
            <phase>package</phase>
            <goals>
                <goal>attach-artifact</goal>
            </goals>
            <configuration>
                <artifacts>
                    <artifact>
                        <file>${project.build.directory}/${project.build.finalName}-prod-sources.jar</file>
                        <type>jar</type>
                        <classifier>prod-sources</classifier>
                    </artifact>
                </artifacts>
            </configuration>
        </execution>
    </executions>
</plugin>

Использовал тот же обходной путь, что и prunge для этого. Но это больше не нужно. Это ошибка, о которой сообщают, которая была исправлена ​​в версии 2.2 в июне 2012: просто установите свойство <classifier>, Протестировано с 2.2.1 .

Немного больше обновленного ответа, используя источники и javadoc

<maven.javadoc.version>3.0.1</maven.javadoc.version>
<maven.source.version>3.0.1</maven.source.version>


<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <version>${maven.source.version}</version>
    <configuration>
        <classifier>jre10-sources</classifier>
    </configuration>
</plugin>



 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>${maven.javadoc.version}</version>
    <configuration>
        <classifier>jre10-javadoc</classifier>
    </configuration>
</plugin>
Другие вопросы по тегам