当前位置: 首页 > 面试题库 >

从插件设置Maven属性

全弘深
2023-03-14
问题内容

我在这里阅读了一些有关如何从Maven插件设置属性的问题(大多数问题涉及应用程序的版本号)。似乎没有简单的方法可以做到这一点,我发现最好的解决方案是拥有一个filter.properties文件,该文件从插件进行更新,并由主pom文件用来过滤所需的资源。

从Maven文档(Maven过滤器插件)中阅读以下内容后,我尝试了另一种解决方案:

变量可以包含在您的资源中。这些变量用$ {…}分隔符表示,可以来自系统属性,项目属性,过滤器资源和命令行。

我发现有趣的是,可以从系统属性中读取变量。因此,我修改了插件以设置系统属性,如下所示:

System.setProperty("currentVersion", appCurrentVersion);

但是,过滤后的资源似乎无法读取该值。谁能告诉我这种方法有什么问题吗?

更新:我正在 验证 阶段运行我的插件。

非常感谢。


问题答案:

不要将其设置为系统属性,而是将其设置为Maven Project属性

// inject the project
@Parameter(defaultValue = "${project}")
private org.apache.maven.project.MavenProject project;

// and in execute(), use it:
project.getProperties().setProperty("currentVersion", appCurrentVersion);

看到:

  • Mojo开发人员食谱
  • MavenProject Java文档


 类似资料:
  • maven插件的pom.xml设置是 运行mvn clean install时,我收到以下错误 我错过了什么?我尝试了一些更改,比如添加baselineOnMigrate,但没有效果。

  • 在过去的几天里,我尝试为Git版本配置Maven发布插件。我已经为它设置了一个测试项目,我尝试了很多配置,以至于我不知道如何将它们全部显示给您... 在任何情况下,Maven Release插件都只使用当前签出的分支。如果我在主分支上启动发布插件,它会在上面创建标签,但是如果我在开发分支上,它会在那里创建所有东西。 我的实际pom是这样的: 我搜索了很多网站,找不到使用Git的Releasplug

  • 我正在尝试使用jib-maven-plugin构建docker映像,我想为特定文件夹设置权限。如果我使用的是docker文件,配置将如下所示: 现在,我该如何使用jib maven插件实现这一点?我相信在波姆的某个地方。jib maven插件中的xml

  • 我们有一个Spring Boot应用程序,其中有一个

  • 问题内容: 我对使用Maven时通过命令行为某些单元测试设置属性的正确方法感到困惑。有很多问题(例如,在不设置MAVEN_OPTS环境变量的情况下指定Maven内存参数,是否可以通过命令行将jvmargs传递给maven,如何为Junit单元测试设置JVM参数?)碰到这个问题,但是没有人正在寻找我的答案。 我想将属性设置为某个值,但是我不想设置环境变量。 我可以使用以下属性在我的pom文件中配置s

  • 结果输出: 因此,看起来${databaseSchema}没有被填充,或者是语法问题。我拉过小提琴,但不能让这个工作,尽管它看起来很容易,也应该。