2012-11-02 54 views
0

我試過並按照這個解決方案 How to read an external properties file in Maven 但沒有運氣。讀取屬性文件的值到pom.xml中

我想從一個屬性讀取一個絕對路徑(/家/ tomcat的/ lib目錄)文件(這是在同一位置的pom.xml),並在pom.xml

項目設置的值屬性文件包含:

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> 

的問題是無論是在蝕編譯TI我或運行「mvn install」佔位符$ {envTomcatLib} /MyJar.jar,無法解析到/home/tomcat/lib/MyJar.jar並保留$ {envTomcatLib} /MyJar.jar。

有人可以協助嗎?

由於當最初裝載的POM在<properties>

+0

屬性可以在Maven設置文件中設置。在Maven構建配置文件中查看doco。另外使用系統範圍是一個壞主意,會導致不穩定並且難以構建端口。 –

回答

1

值被分配。 properties-maven-plugin僅影響加載屬性之後的插件執行。在我提供的similar answer中有更多詳細信息。

順便提一句,Maven Reference Book對此有關係統範圍的說法:「請注意,不建議使用此範圍(您應該始終嘗試引用公共或自定義Maven存儲庫中的依賴項)。」

0

您可能需要在/${envTomcatLib}/MyJar.jar之前刪除"/"或給出屬性值home/tomcat/lib而不是/home/tomcat/lib。這可能是無法解決您的位置的原因。