Значение тега конфигурации maven устанавливается равным нулю в коде Java, если тег «plugin» добавляется внутрь «pluginManagement» (см. следующий код) - PullRequest
0 голосов
/ 07 сентября 2018

pom.xml

<pluginManagement>
        <plugins>
            <plugin>
                <groupId>com.example.groupid</groupId>
                <artifactId>artifact-example-maven-plugin</artifactId>
                <version>1.0-SNAPSHOT</version>

                <executions>
                    <execution>
                        <id>mojo-plugin-id</id>
                        <goals>
                            <goal>example-gole</goal>
                        </goals>
                        <phase>integration-test</phase>
                        <configuration>
                            <employee>
                                <firstName>MyFirstName</firstName>
                                <middleName>MyMiddleName</middleName>
                                <lastName>MyLastName</lastName>
                            </employee>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </pluginManagement>

выше значения тега конфигурации, установленного как нулевое значение в классе Java (класс Java, как следует), но если я удалил тег «pluginManagement», все работает отлично

ExampleMojo.java

@Mojo(name = "example-gole")

открытый класс ExampleMojo extends AbstractMojo {

@Parameter(property = "employee")
private Employee employee; 

@Override
public void execute() throws MojoExecutionException {
    getLog().info(employee);
}

}

метод execute показывает нулевой вывод для всех свойств

Employee.java

public class Employee implements Serializable {

private static final long serialVersionUID = 1L;

private String firstName;
private String middleName;
private String lastName;

// consider constructor, getter and setter, hashcode, eqauls, toString is available

}

Подробнее

Создание настраиваемого плагина maven. Вышеупомянутые java-классы взяты из плагина maven, но вышеупомянутая конфигурация pom.xml - из его вызывающей стороны.

1 Ответ

0 голосов
/ 07 сентября 2018

Это работает для меня сейчас. Использовал тег «плагин» «конфигурация» вместо тега «выполнение» «конфигурация»

<pluginManagement>
<plugins>
    <plugin>
        <groupId>com.example.groupid</groupId>
        <artifactId>artifact-example-maven-plugin</artifactId>
        <version>1.0-SNAPSHOT</version>

        <executions>
            <execution>
                <id>mojo-plugin-id</id>
                <goals>
                    <goal>example-gole</goal>
                </goals>
                <phase>integration-test</phase>
            </execution>
        </executions>

        <configuration>
            <employee>
                <firstName>MyFirstName</firstName>
                <middleName>MyMiddleName</middleName>
                <lastName>MyLastName</lastName>
            </employee>
        </configuration>

    </plugin>
</plugins>

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