MavenProject setValue не изменить pom.xml
У меня проблема с классом MavenProject. Я делаю плагин Maven, и я использую этот класс, чтобы получить свойства POM, такие как groupId и версия. Каждый раз, когда я использую свой плагин, чтобы установить что-то, например:
public class versionGoal extends AbstractMojo {
/**
* @parameter default-value="${project}"
*/
private MavenProject mavenProject;
/**
* @throws org.apache.maven.plugin.MojoExecutionException
*/
public void execute() throws MojoExecutionException
{
this.mavenProject.setVersion("9.0.0");
}
}
после выполнения, например, на этапе тестирования ничего не меняется. Но если я попытаюсь добавить строку кода: mavenProject.getVersion() после строки this.mavenProject.setVersion("9.0.0") вернет мне "9.0.0", но pom.xml не изменится.
Наверное, это какая-то глупая ошибка, я знаю:) И я знаю, что существует плагин версии-maven, но я не хочу его использовать.
Спасибо за помощь!
1 ответ
Вы просто меняете данные в памяти:
Вы должны использовать ModelWriter
чтобы сохранить изменения или дополнения.
ПРИМЕЧАНИЕ: это, вероятно, очень плохая практика, если вы меняете такие вещи, какversion
если вы не очень конкретны о поведении в качестве побочного эффекта
Записывает предоставленную модель в указанный файл.
void write(File output, Map<String,Object> options, Model model)
Записывает предоставленную модель в указанный поток байтов.
void write(OutputStream output, Map<String,Object> options, Model model)
Записывает предоставленную модель указанному персонажу.
void write(Writer output, Map<String,Object> options, Model model)
Это легко найти в JavaDoc