2013-12-17 60 views
1

假設我有一個輪廓Maven不包括在Mac OS X使用配置文件屬性

<profile> 
     <id>ak</id> 
     <properties> 
      <db.host>localhost</db.host> 
      <db.name>ak_cit</db.name> 
      <db.user>user</db.user> 
      <db.password>pass</db.password> 
     </properties> 
    </profile> 

而且某處的pom.xml的根有默認值

<db.host>NOT_DEFINED</db.host> 
<db.name>NOT_DEFINED</db.name> 
<db.host.reporting.db>NOT_DEFINED</db.host.reporting.db> 
<db.name.reporting.db>NOT_DEFINED</db.name.reporting.db> 

我有,而開展的問題我的應用程序mvn -Pak clean install是我得到一個異常,因爲數據庫NOT_DEFINED不存在。相同的命令在ubuntu或windows上完全正常工作。在詢問了我的同事之後,我發現他們中的一些人在OS X上遇到了同樣的問題。

目前唯一對我有用的解決方案是通過命令行傳遞變量:-Ddb.host=localhost -Ddb.user=user -Ddb.password=pass -Ddb.name=ak_cit。這個解決方案的問題是有很多需要通過的屬性。

有沒有人知道如何解決這個問題或可能導致這樣的問題?

+0

? Maven 2.x和Maven 3.x應用配置文件的方式可能存在細微差異。 – Jonathan

+0

我剛剛在linux上檢查過,它是maven 3.0.4,而我在mac上有3.1.1。試圖降級,同樣的問題依然存在。 – Keynash

+0

你在哪裏定義了配置文件? pom文件? settings.xml? – khmarbaise

回答

0

問題出在settings.xml中。正在覆蓋我選擇的配置文件。在檢查了其他系統後,我注意到在settings.xml中沒有定義配置文件。

在搞清楚了這一點巨大的幫助下你使用Maven的在OS X和您的其他平臺的版本相同的插件echoproperties

<plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-antrun-plugin</artifactId> 
     <version>1.7</version> 
     <executions> 
      <execution> 
       <phase>validate</phase> 
       <goals> 
        <goal>run</goal> 
       </goals> 
       <configuration> 
        <tasks> 
         <echoproperties /> 
        </tasks> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 
</plugins>