1

我将以下代码添加到我的 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

版本-maven-plugin.version=2.0

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

<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 都在同一个文件夹中

4

1 回答 1

4

原因很简单:为了能够读取 的配置properties-maven-plugin,Maven 还必须解析所有其他插件——它在实际启动插件之前不知道插件做了什么。

当它这样做时,它注意到它没有所有必要的版本。这个验证步骤在第一个插件被实例化之前很久就发生了。

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

于 2013-02-05T15:19:16.083 回答