Java MavenProject setValue未更改pom.xml
我对MavenProject类有问题。我制作了一个maven插件,并使用这个类来获取pom属性,比如groupId和version。每次当我使用我的插件设置某些东西时-例如:Java MavenProject setValue未更改pom.xml,java,maven,maven-plugin,mojo,Java,Maven,Maven Plugin,Mojo,我对MavenProject类有问题。我制作了一个maven插件,并使用这个类来获取pom属性,比如groupId和version。每次当我使用我的插件设置某些东西时-例如: public class versionGoal extends AbstractMojo { /** * @parameter default-value="${project}" */ private MavenProject mavenProject; /** * @throws org.apache.ma
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");
}
}
执行后,例如在测试阶段,没有任何变化。但是,如果我尝试在代码行this.mavenProject.setVersion(“9.0.0”)之后添加代码行:mavenProject.getVersion(),则返回我“9.0.0”,但pom.xml不会更改
可能是一些愚蠢的错误,我知道:)我知道存在版本maven插件,但我不想使用它
谢谢你的帮助 您正在更改内存中的数据:
您必须使用来保存更改或添加
注意:如果您更改version
之类的内容,这可能是一种非常糟糕的做法,除非您非常明确地将该行为视为副作用
将提供的模型写入指定文件
void write(File output, Map<String,Object> options, Model model)
void写入(文件输出、映射选项、模型)
将提供的模型写入指定的字节流
void write(OutputStream output, Map<String,Object> options, Model model)
void写入(OutputStream输出、映射选项、模型)
将提供的模型写入指定的字符编写器
void write(Writer output, Map<String,Object> options, Model model)
void写入(写入器输出、映射选项、模型)
这在JavaDoc中很容易找到,首先,为什么不使用版本maven插件,而不是你想让它与众不同,为什么?当然,您不能简单地更改pom,因为在运行时内,您只能访问pom的加载值,而不能访问硬盘上的文件。此外,为什么您使用旧式XDoclect样式而不是。在您使用了上述所有内容之后,您的评论和许多其他内容都消失了。版本maven插件使用特殊的东西来保存这些信息等。阅读JavaDoc,你需要做更多的事情,它们在那里解释得很好,我不打算重复这项工作。