【问题标题】:read Maven variable from properties file using profile使用配置文件从属性文件中读取 Maven 变量
【发布时间】:2012-07-26 02:37:49
【问题描述】:

我想从属性文件中读取一个用于配置构建插件的 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>

非常感谢

【问题讨论】:

    标签: maven configure


    【解决方案1】:

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

    【讨论】:

    • env 用于配置文件: mvn -P private 或进一步 mvn -P 默认值。过滤器文件称为 filter-private.properties。没关系,我可以启动几个配置文件了。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-07-19
      • 2011-10-31
      • 1970-01-01
      • 1970-01-01
      • 2020-05-10
      • 2013-01-21
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      相关资源
      最近更新 更多