Можем ли мы использовать version-maven-plugin для получения последней версии моего POM, указанной в области импорта <dependencyManagement>? - PullRequest
0 голосов
/ 16 мая 2019

Я подготовил одно общее POM, которое имеет все мои зависимости проекта от версий. Теперь я хочу всегда использовать последнюю версию POM общего импорта в моем проекте POM. Я пытаюсь добиться этого, используя version-maven-plugin, но он не получает последнюю версию POM Commonimport. Как мы можем добиться этого с помощью версии-Maven-плагин? Можем ли мы достичь этого любым другим способом?

Общая версия POM # 1.0:

    <?xml version="1.0" encoding="UTF-8"?>
    <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>
        <groupId>commonimport</groupId>
        <artifactId>commonimport-artifact</artifactId>
        <version>1.0</version>

        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.7.0</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>

        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>group-a</groupId>
                    <artifactId>artifact-a</artifactId>
                    <version>1.0</version>
                </dependency>
            </dependencies>
        </dependencyManagement>
    </project>

Общая версия POM # 2.0:

    <?xml version="1.0" encoding="UTF-8"?>
    <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>
        <groupId>commonimport</groupId>
        <artifactId>commonimport-artifact</artifactId>
        <version>2.0</version>

        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.7.0</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>

        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>group-a</groupId>
                    <artifactId>artifact-a</artifactId>
                    <version>2.0</version>
                </dependency>
            </dependencies>
        </dependencyManagement>
    </project>

Project-POM:

    <?xml version="1.0" encoding="UTF-8"?>
    <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>
        <groupId>project-a</groupId>
        <artifactId>project-a-artifact</artifactId>
        <version>1.0</version>

        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.7.0</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>versions-maven-plugin</artifactId>
                    <version>2.7</version>
                    <configuration>
                        <includes>
                            <include>commonimport:commonimport-artifact</include>
                        </includes>
                        <excludes>
                            <exclude>org.apache.commons:commons-collections4</exclude>
                        </excludes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.dstovall</groupId>
                    <artifactId>onejar-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <goals>
                                <goal>one-jar</goal>
                            </goals>
                            <configuration>
                                <onejarVersion>2.0.6</onejarVersion>
                                <mainClass>com.projecta.ProjectA</mainClass>
                                <urlFactory>com.simontuffs.onejar.JarClassLoader$OneJarURLFactory</urlFactory>
                                <filename>${project.artifactId}-one-jar-${project.version}.jar</filename>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

            </plugins>
        </build>
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>commonimport</groupId>
                    <artifactId>commonimport-artifact</artifactId>
                    <version>1.0</version>
                    <scope>import</scope>
                    <type>pom</type>
                </dependency>
            </dependencies>
        </dependencyManagement>
        <dependencies>
            <dependency>
               <groupId>group-a</groupId>
               <artifactId>artifact-a</artifactId>
            </dependency>
        </dependencies>
    </project>

Когда я запускаю приведенную ниже команду для project-a, то я хочу, чтобы она подобрала последнюю версию commonimport POM, которая является версией # 2.

mvn версии: использовать последние выпуски чистой установки

...