我有一个与maven属性插件相关的问题。 我的问题有点与之相关 How to read an external properties file in Maven
根据该文章的建议,我已设法让它完成我想要它做的大部分工作。 我的配置如下所示:
<dependency>
<groupId>org.kuali.maven.plugins</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0.8</version>
</dependency>
...
<plugin>
<groupId>org.kuali.maven.plugins</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0.8</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>${basedir}/${environment}.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
现在,我遇到的问题如下: 我已经配置了一个简单的存储库来存储内容,如下所示:
<distributionManagement>
<repository>
<id>localRep</id>
<url>file:${localRepositoryLocation}</url>
</repository>
</distributionManagement>
运行mvn deploy
时,$ {localRepositoryLocation}不会被替换。
[INFO] --- maven-deploy-plugin:2.5:deploy (default-deploy) @ SomeApp ---
Uploading: file:${localRepositoryLocation}/SomeApp/SomeApp/1.0.0/SomeApp-1.0.0.war
Uploaded: file:${localRepositoryLocation}/SomeApp/SomeApp/1.0.0/SomeApp-1.0.0.war (5754 KB at 18322.3 KB/sec)
Uploading: file:${localRepositoryLocation}/SomeApp/SomeApp/1.0.0/SomeApp-1.0.0.pom
Uploaded: file:${localRepositoryLocation}/SomeApp/SomeApp/1.0.0/SomeApp-1.0.0.pom (7 KB at 2051.1 KB/sec)
另外,我应该注意到我也在mojo版本中使用了该插件,它产生了完全相同的行为。 因此,如果来自两个不同提供商的相同插件具有相同的结果,那么我必须在这里做错了。
有人能帮忙吗?
亲切的问候, 安德烈
答案 0 :(得分:5)
首先,两个插件都不同。原始codehaus plugin在<version>1.0-alpha-2</version>
中可用,目标properties:read-project-properties
的配置需要files属性:
<configuration>
<files>
<file>etc/config/dev.properties</file>
</files>
</configuration>
<version>1.1.10</version>
<configuration>
<locations>
<location>classpath:META-INF/spring/database.properties</location>
</locations>
</configuration>
在classpath:myprops.properties
中可用,与原始插件相比是扩展版本,配置需要位置属性:
<plugin>
<groupId>org.kuali.maven.plugins</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.1.10</version>
<configuration>
<locations>
<location>classpath:META-INF/spring/database.properties</location>
</locations>
</configuration>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
</execution>
</executions>
</plugin>
在这里你可以看到改进,插件代码的引用:
可以找到属性文件的位置。 Spring资源加载可以理解的任何url都是有效的。例如{{1}}。支持.properties和.xml样式属性。
代码中的问题是示例(来自codehaus文档)是错误的。正确的配置如下:
{{1}}
如您所见,配置标记不在执行标记下。