Я пытаюсь написать свой собственный плагин maven, и я пытаюсь получить доступ к MavenProject с обычной аннотацией. Однако, когда я выполняю плагин, поле проекта не вводится и остается нулевым. Вот мой пример кода:Инъекция MavenProject не работает
package xyz;
import org.apache.maven.plugin.*;
import org.apache.maven.plugins.annotations.*;
import org.apache.maven.project.*;
/**
* @goal develop
*
*/
public class Experiment extends AbstractMojo {
@Parameter(defaultValue = "${project}", readonly = true, required = true)
protected MavenProject project;
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
if (project == null) {
getLog().error("Variable ${project} is null!");
} else {
getLog().info("Variable ${project} is filled!");
}
}
}
Что бы я ни стараюсь, я не могу заставить его работать, что Maven автоматически впрыскивает поле проекта с соответствующим объектом, я всегда получаю информацию о том, что поле является пустым. Любая идея, что я делаю неправильно?
Файл pom, кажется, не интересная деталь здесь, потому что я получаю такое поведение с большими помпами, которые я использую в течение многих лет в своих сборках. Но я могу воспроизвести его, даже с самой простой возможной файл пом:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
</project>
Покажите свой полный файл POM! – khmarbaise
Самый простой пример pom-файла будет выполнен, см. Edit. – Thorsten
Что такое самый простой пример pom-файла? У меня его нет ... у вас должен быть такой, чтобы не публиковать его здесь. – khmarbaise