PluginVersionResolutionException в проекте Maven, когда я устанавливаю упаковку в пакет - PullRequest
1 голос
/ 16 октября 2019

В моем проекте Maven, когда я меняю тип упаковки с 'jar' на 'bundle', большинство моих плагинов (компилятор, развертывание, установка, ресурсы, верный) теряют свои версии. Почему это?

Мой pom.xml ниже:

<groupId>org.wso2.carbon</groupId>
<artifactId>org.wso2.carbon.ui_4.4.35_patch</artifactId>
<version>1.0.0</version>
<packaging>bundle</packaging>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>4.2.1</version>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                    <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
                    <Bundle-Name>${project.artifactId}</Bundle-Name>
                    <Export-Package>web.admin.*</Export-Package>
                </instructions>
            </configuration>
        </plugin>

    </plugins>
</build>

1 Ответ

1 голос
/ 17 октября 2019

Есть два возможных подхода. Тот, который я использую для своих собственных проектов, - это сохранить пакет bundle и добавить версии плагинов maven в раздел pluginManagement в pom.xml. Например:

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-install-plugin</artifactId>
                <version>2.5.2</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.2</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>2.8.2</version>
            </plugin>
        </plugins>
    </pluginManagement>

    <!-- Add you current 'plugins' section here. -->
</build>

В дополнение к версии, вы также можете добавить configuration к каждому плагину. Если у вашего проекта есть родительский pom, было бы естественно добавить туда раздел pluginManagement вместо вашего модуля bundle.

В качестве альтернативы, как рекомендует @khmarbaise, вы можете использовать jar упаковку и простоиспользуйте maven-bundle-plugin для генерации манифеста. Этот подход описан на странице документации плагина .

...