我的MavenProject类有问题。我创建了一个maven插件,我正在使用这个类来获取像groupId和version这样的pom属性。每当我使用我的插件设置某些东西时 - 例如:
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-plugin,但我不想使用它。
感谢您的帮助!
答案 0 :(得分: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
中找到