我想使用properties-maven-plugin。我阅读了用法http://mojohaus.org/properties-maven- plugin/usage.html,但是它对我不起作用。
我创建了一个非常简单的项目对其进行测试。这是我的pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>test</groupId> <artifactId>MavenTest</artifactId> <version>1.0.0</version> <name>MavenTest</name> <properties> <prop1>2.2</prop1> </properties> <dependencies> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j.version}</version> </dependency> </dependencies> <build> <plugins> <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>${basedir}/my.properties</file> </files> </configuration> </execution> </executions> </plugin> </plugins> <pluginManagement> <plugins> <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId> org.codehaus.mojo </groupId> <artifactId> properties-maven-plugin </artifactId> <versionRange> [1.0-alpha-2,) </versionRange> <goals> <goal> read-project-properties </goal> </goals> </pluginExecutionFilter> <action> <ignore></ignore> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> </plugins> </pluginManagement> </build> </project>
如果我运行mvn compile或mvn install,则结果为:
[ERROR] The build could not read 1 project -> [Help 1] org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs: [ERROR] 'dependencies.dependency.version' for org.apache.logging.log4j:log4j-api:jar must be a valid version but is '${log4j.version}'. @ line 16, column 13
“ my.properties”文件包含以下内容:
log4j.version=2.2
如此处所述:mojohaus
如果我使用在pom.xml中定义的prop1属性,则一切正常。
所以我做错了什么?
他们的官方回答是不支持使用read-project- properties设置依赖项的版本:https : //github.com/mojohaus/properties-maven- plugin/issues/26
这行不通,也不是属性maven插件的目的,此外,从文件中读取属性以定义依赖项版本的好处是什么?