2012-09-17 29 views
1

有誰知道爲什麼CentOS 5.x上的maven找不到用戶設置,除非我使用'-s'?爲什麼maven使用「?」作爲我的主目錄

  • 首頁設置爲/家庭/建築
  • $ HOME/.m2目錄/ settings.xml中存在,通過用戶擁有的,可以由用戶
  • 我使用的新鮮下載閱讀mvn 3.0.4(與3.0.3一起失敗)

我懷疑我的環境中的某些東西在阻礙,但我不知道是什麼。

找不到用戶設置 - 不使用 「-s」

[[email protected]]$ echo $HOME; mvn clean -X|grep setting 

/home/build 
[DEBUG] Reading global settings from .../apache-maven-3.0.4/conf/settings.xml 
[DEBUG] Reading user settings from ?/.m2/settings.xml 
[DEBUG] Imported: org.apache.maven.settings < plexus.core 

查找用戶設置 - 「-s」 使用

[[email protected]]$ echo $HOME; mvn clean -X -s $HOME/.m2/settings.xml|grep setting 

/home/build 
[DEBUG] Reading global settings from .../apache-maven-3.0.4/conf/settings.xml 
[DEBUG] Reading user settings from /home/build/.m2/settings.xml 
[DEBUG] Imported: org.apache.maven.settings < plexus.core 

感謝

彼得

+0

你是否檢查過你的'MAVEN_OPTS'變量沒有任何異常? – Augusto

+0

Maven根據'user.home'系統屬性讀取用戶設置(這發生在'org.apache.maven.settings.DefaultMavenSettingsBuilder'類中)。我建議你編寫一個小程序來檢查系統屬性是否設置正確。或者,您可以嘗試使用'-Duser.home =/home/build'來執行maven並查看它是否有效。 –

+0

啊,user.home系統屬性設置爲'?' (我將它添加到antrun執行中)。所以,現在我需要做的是弄清楚設置它的方式。我通過一個竹代理來運行它,並且必須有一個導致問題的設置。謝謝。 –

回答

1

「su」命令是這個特定問題的核心。 「su」可以作爲另一個用戶執行命令。如果在沒有使用「 - 」的情況下使用,則它不會處理啓動腳本以便在某些情況下導致混合環境。

在編寫的init.d啓動腳本一定要使用「蘇 - 」調用命令或構建系統的用戶在使用root用戶的環境變量都將執行(包括HOME)有些操作系統,因爲BAMBOO_USER上

問題用root用戶的環境

su $BAMBOO_USER -c "cd ${BAMBOO_HOME}; nohup java -Dbamboo.home=${BAMBOO_HOME} ... &" 

更合適的init.d腳本運行

su - $BAMBOO_USER -c "cd ${BAMBOO_HOME}; nohup java -Dbamboo.home=${BAMBOO_HOME} ... &" 
相關問題