使用配置文件从属性文件中读取Maven变量

使用配置文件从属性文件中读取Maven变量,maven,configure,Maven,Configure,我想从属性文件中读取一个maven变量来配置构建插件。在和其他项目文件(如上下文文件)中不需要它 1) 制作一个配置文件(它可以工作,可以使用mvn…-p专用) 私有的 私有的 2) 使用此内容创建了筛选器文件(它可以正常工作) foo.path=/home/foo/path 3) 尝试配置插件(不工作) org.codehaus.mojo foo插件 ${foo plugin.version} ${foo.path} ... Thx很多属性的名称是'env',但您在配置中的任何地方都不

我想从属性文件中读取一个maven变量来配置构建插件。在和其他项目文件(如上下文文件)中不需要它

1) 制作一个配置文件(它可以工作,可以使用mvn…-p专用)


私有的
私有的
2) 使用此内容创建了筛选器文件(它可以正常工作) foo.path=/home/foo/path

3) 尝试配置插件(不工作)


org.codehaus.mojo
foo插件
${foo plugin.version}
${foo.path}
...

Thx很多属性的名称是'env',但您在配置中的任何地方都不使用env。

当Maven文档提到“筛选文件”时,它们通常指处理资源时使用的文件(即,将资源从
/src/main/resources
复制到
目标/类
)。据我所知,这些文件中的属性并没有用于插件的即时配置。我已经使用了Codehaus目标来做你正在尝试的事情。确保在任何需要config属性的插件之前将目标绑定到生命周期


另见,;您可以加载用于配置其他插件的属性,但不能配置核心Maven项目元素。

env用于profile:mvn-p private或进一步的mvn-p default。过滤器文件名为filter-private.properties。没关系,我可以启动几个配置文件。
<profile>
 <id>private</id>
  <properties>
   <env>private</env>
  </properties>
</profile>
<build>
 <plugin>
   <groupId>org.codehaus.mojo</groupId>
    <artifactId>foo-plugin</artifactId>
    <version>${foo-plugin.version}</version>
    <configuration>
     <!--<fooPath>home/foo/path></fooPath> that works -->
     <fooPath>${foo.path}</fooPath> <!--works not -->
    </configuration>
...
</build>