为什么maven使用"?"作为我的主目录

时间:2012-09-17 18:33:48

标签: maven settings environment-variables

有没有人知道为什么Centos 5.x上的maven找不到用户设置,除非我使用'-s'?

  • 主页设置为 / home / build
  • $ HOME / .m2 / settings.xml存在,由用户拥有,可由用户读取
  • 我正在使用mvn 3.0.4的新下载(3.0.3也失败了)

我怀疑环境中的某些东西会妨碍我,但我不确定是什么。

找不到用户设置 - 不使用“-s”

[build@...]$ 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”

[build@...]$ 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

谢谢

彼得

1 个答案:

答案 0 :(得分:1)

“su”命令是这个特定问题的核心。 “su”可以作为另一个用户执行命令。如果在没有“ - ”的情况下使用它,它不会处理该用途的启动脚本,在某些情况下会导致混合环境。

编写init.d启动脚本时,请务必在调用命令时使用“su - ”,否则构建系统用户将使用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} ... &"