我已经尝试并遵循此解决方案 How to read an external properties file in Maven 但没有运气。
我想从属性文件(与pom.xml位于同一位置)读取绝对路径(/ home / tomcat / lib)并在pom.xml中设置值
project.properties文件包含:
myTomCat.lib.location = /家庭/ Tomcat的/ lib中
pom.xml配置包含:
<properties>
<envTomcatLib>${myTomCat.lib.location}</envTomcatLib>
</properties>
<dependencies>
<dependency>
<artifactId>MyJar</artifactId>
<groupId>MyJar</groupId>
<scope>system</scope>
<version>1.0</version>
<systemPath>/${envTomcatLib}/MyJar.jar</systemPath>
</dependency>
</dependencies>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-1</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>${basedir}/project.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
问题是在eclipse编译时或运行“mvn install”,占位符$ {envTomcatLib} /MyJar.jar无法解析为/home/tomcat/lib/MyJar.jar并且仍为$ {envTomcatLib } /MyJar.jar。
有人可以帮忙吗?
由于
答案 0 :(得分:1)
最初加载POM时会分配<properties>
部分中的值。 properties-maven-plugin
仅影响在加载属性之后的插件执行。我提供的similar answer更多细节。
BTW,Maven Reference Book对系统范围有这样的说法:“请注意,不推荐使用此范围(您应该总是尝试在公共或自定义Maven存储库中引用依赖项。)
答案 1 :(得分:0)
您可能需要在"/"
之前移除/${envTomcatLib}/MyJar.jar
或将属性值设为home/tomcat/lib
而不是/home/tomcat/lib
。这可能是无法解决您的位置的原因。