1

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

1)制作了一个配置文件(它有效,可以使用 mvn ... -P private)

<profile>
 <id>private</id>
  <properties>
   <env>private</env>
  </properties>
</profile>

2) 使用此内容创建过滤器文件(有效) foo.path=/home/foo/path

3)尝试配置插件(不起作用)

<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>

多谢

4

2 回答 2

0

当 Maven 文档提到“过滤文件”时,它们通常表示处理资源时使用的文件(即将资源从 复制/src/main/resourcestarget/classes)。据我所知,这些文件中的属性不用于开箱即用的插件配置。我已经使用 Codehaus properties-maven-plugin:read-project-properties目标做你正在尝试的事情。确保在任何需要配置属性的插件之前将目标绑定到生命周期。

另外,请参阅此答案;您可以加载用于配置其他插件的属性,但不能用于配置核心 Maven 项目元素。

于 2012-07-25T18:37:49.013 回答
0

您的属性名称是“env”,但您没有在配置中的任何地方使用 env。

于 2012-07-22T12:42:47.050 回答