свойство maven не переопределяется с -dParam.version - PullRequest
0 голосов
/ 04 декабря 2018

Когда я исполняю: mvn -Dparam.version=9 help:effective-pom | clip в командной строке на Windows 10, я получаю только этот клип:

<properties>
      <param.version>4</param.version>
</properties> 

, что является старой версией.Как я могу заставить изменить этот параметр?

В cmd:

mvn --version
Apache Maven 3.5.4

Froms poms:

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
</plugin>

РЕДАКТИРОВАТЬ: Я используюэто свойство для установки версии зависимости, например:

<dependency>
    <groupId>x</groupId>
    <artifactId>c-api/artifactId>
    <version>${param.version}</version>
</dependency>

внутри c-api мы видим:

<?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>

    <parent>
        <groupId>x</groupId>
        <artifactId>c</artifactId>
        <version>4</version>
    </parent>

    <artifactId>c-api</artifactId>
    <packaging>jar</packaging>
    <dependencies>
        <dependency>
            <groupId>x</groupId>
            <artifactId>c-api</artifactId>
        </dependency>

        <dependency>
            <groupId>x</groupId>
            <artifactId>p-api</artifactId>
        </dependency>

        <dependency>
            <groupId>x</groupId>
            <artifactId>f-api</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-commons</artifactId>
        </dependency>

        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Вы смотрите в неверном месте, проверяя, правильно ли применен ваш параметр командной строки.

Если вы ввели команду mvn -Dparam.version=9 help:effective-pom, то вы должны увидеть вашу зависимость оцененную версиюправильно.

Там, где у вашего pom

...
<dependency>
    <groupId>x</groupId>
    <artifactId>c-api</artifactId>
    <version>${param.version}</version>
</dependency>
...

, вывод команды будет отображаться

...
<dependency>
    <groupId>x</groupId>
    <artifactId>c-api</artifactId>
    <version>9</version>
</dependency>
...

Если вы просто запустите mvn help:effective-pom, вы увидите

...
<dependency>
    <groupId>x</groupId>
    <artifactId>c-api</artifactId>
    <version>4</version>
</dependency>
...

с отображением версии, указанной в свойствах pom.

0 голосов
/ 04 декабря 2018

Во-первых, вам нужно использовать -Dparam.version вместо -dParam.version.

Если в файле xxx.pom определено

<properties>
    <param.version>4</param.version>
</properties

, вам не разрешено изменять это с помощью командной строки, в то время как вы можете переопределить это.И в этом случае, хотя значение все еще равно 4 в файле pom, другие, которые ссылаются на него как ${param.version}, выберут 9.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...