maven-jar-plugin: 3.1.3 не удалось выполнить цель - PullRequest
0 голосов
/ 19 сентября 2019

Проект должен обновить maven-jar-plugin с версии 2.3.x до текущей последней версии (3.1.2), он не смог выполнить цель после обновления

Файл pom перед обновлением показан ниже

             <plugin>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.3.1</version> 
                <executions>
                    <execution>
                        <goals>
                            <goal>jar</goal>
                            <goal>test-jar</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <archive>
                        <manifestFile>src/main/resources/templates/MANIFEST.MF</manifestFile>
                        <manifestEntries>
                            <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
                            <Bundle-Version>${project.version}</Bundle-Version>
                            <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
                            <Bundle-Name>${project.groupId} ${project.artifactId} package</Bundle-Name>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>

После изменения на <version>3.1.2</version> и запуска maven clean и установки он выводит следующую ошибку

Не удалось выполнить цель org.apache.maven.plugins: maven-jar-plugin: 3.1.2: jar (по умолчанию) в проекте xxx: вместо этого вы должны использовать классификатор для присоединения дополнительных артефактов к проектуо замене их.

Вопрос:

Как я могу использовать классификатор для присоединения дополнительных артефактов к проекту вместо их замены?

Подробнее

- это проект Java, а IntelliJ IDEA - это IDE

1 Ответ

0 голосов
/ 19 сентября 2019

Добавление классификатора в конфигурации раздел заставит его работать

 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.1.2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>jar</goal>
                            <goal>test-jar</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <classifier>client</classifier>
                    <archive>
                        <manifestFile>src/main/resources/templates/MANIFEST.MF</manifestFile>
                        <manifestEntries>
                            <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
                            <Bundle-Version>${project.version}</Bundle-Version>
                            <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
                            <Bundle-Name>${project.groupId} ${project.artifactId} package</Bundle-Name>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>

Классификатор различает артефакты, которые были построены из того же POM, но различаютсяпо содержанию.Это некоторая необязательная и произвольная строка, которая - если присутствует - добавляется к имени артефакта сразу после номера версии.В качестве мотивации для этого элемента рассмотрим, например, проект, который предлагает артефакт, нацеленный на JRE 1.5, но в то же время также и артефакт, который все еще поддерживает JRE 1.4.Первый артефакт может быть снабжен классификатором jdk15, а второй - jdk14, чтобы клиенты могли выбирать, какой из них использовать.

Еще один распространенный вариант использования классификаторов - это присоединение вторичных артефактов к основному артефакту проекта.Просматривая центральный репозиторий Maven, вы заметите, что источники и javadoc классификаторов используются для развертывания исходного кода проекта и документов API вместе с упакованными файлами классов.

Цитата может быть найдена здесь

...