maven-jar-plugin: 3.1.3 не удалось выполнить цель

Проекту необходимо обновить maven-jar-plugin с версии 2.3.x до текущей новейшей версии (3.1.2), не удалось выполнить цель< /strong> после обновления

Файл 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 и install он выводит следующую ошибку

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

Вопрос:

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

Подробнее

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


person SLN    schedule 19.09.2019    source источник


Ответы (1)


Добавьте классификатор в раздел configuration, и он заработает.

 <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 вместе с упакованными файлами классов.

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

person SLN    schedule 19.09.2019