我想使用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>
Run Code Online (Sandbox Code Playgroud)
如果我运行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
Run Code Online (Sandbox Code Playgroud)
"my.properties"文件包含以下内容:
log4j.version=2.2
Run Code Online (Sandbox Code Playgroud)
如下所述:mojohaus
如果我使用pom.xml中定义的prop1属性,一切正常.
那么我做错了什么?
他们的官方回答是不支持使用read-project-properties设置依赖项的版本:https : //github.com/mojohaus/properties-maven-plugin/issues/26
这行不通,也不是属性maven插件的意图,此外,从文件中读取属性以定义依赖项版本的好处是什么?
关于此问题,对此问题有一个非常透彻的解释:https : //stackoverflow.com/a/14727072/1707491
| 归档时间: |
|
| 查看次数: |
18818 次 |
| 最近记录: |