在maven中读取属性文件

时间:2013-02-05 15:09:19

标签: maven plugins pom.xml

我将以下代码添加到我的pom.xml中,以使用以下配置从外部属性文件中读取属性:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0-alpha-2</version>
    <executions>
      <execution>
        <phase>initialize</phase>
        <goals>
          <goal>read-project-properties</goal>
        </goals>
        <configuration>
          <files>
            <file>..\maven.properties</file>
          </files>
        </configuration>
      </execution>
    </executions>
</plugin>

在我的maven.properties文件中,我有以下内容:

  

aspectj-maven-plugin.version = 1.4

     

版 - 行家-plugin.version = 2.0

我在pom.xml中使用${versions-maven-plugin.version}

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>versions-maven-plugin</artifactId>
  <version>${versions-maven-plugin.version}</version>
  <configuration>
    <rulesUri>url</rulesUri>
    <includesList>com.package:*</includesList>
  </configuration>
</plugin>

但是当我在包上运行mvn clean install表示插件版本无效时,会抛出异常。出现这种情况的原因是什么?

注意:pom.xml和mave.properties都在同一个文件夹中

1 个答案:

答案 0 :(得分:3)

原因很简单:为了能够读取properties-maven-plugin的配置,Maven也必须解析所有其他插件 - 它无法知道插件在实际启动之前的作用。

虽然它确实如此,但它注意到它没有所有必要的版本。此验证步骤在第一个插件实例化之前很久就会发生。

结论:您的方法不起作用。您可以做的是将属性放入POM,然后从那里将它们提取到属性文件中(例如使用maven-resources-plugin)。