我将以下代码添加到我的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都在同一个文件夹中
答案 0 :(得分:3)
原因很简单:为了能够读取properties-maven-plugin
的配置,Maven也必须解析所有其他插件 - 它无法知道插件在实际启动之前的作用。
虽然它确实如此,但它注意到它没有所有必要的版本。此验证步骤在第一个插件实例化之前很久就会发生。
结论:您的方法不起作用。您可以做的是将属性放入POM,然后从那里将它们提取到属性文件中(例如使用maven-resources-plugin)。