2014-10-30 35 views
1

我有一个运行maven构建任务的shell脚本。脚本运行时,它以sudo用户身份运行。但是,我位于代理之后,因此需要在我的〜/ .m2/settings.xml文件中指定代理详细信息。这目前在主用户的主目录中。哪个maven settings.xml文件将sudo使用?

我发现当这个脚本以sudo方式运行时,它不会从其他用户的〜/ .m2/settings.xml文件中获取settings.xml文件。

如何为sudo/root用户指定这些设置?我应该把这个settings.xml放在root用户的主目录中吗?

回答

1

当你使用sudo,我觉得user.home性质的变化,这就是为什么这个,

可以明确

-s 

指定设置文件例如

mvn clean compile -s /home/foo/.m2/settings.xml 
+0

嗯,不幸的是,我不能传递设置文件,因为maven调用是在shell脚本中引用的,我真的不应该改变:( – jcm 2014-10-30 05:38:32

+0

编写一个打印'user.home'属性并启动的最小java代码使用sudo并查看,并为您的settings.xml创建该目录的软链接 – 2014-10-30 05:41:50

3

如果所有用户在机器上将始终需要代理设置,您可以简单地将它们添加到全局文件settings.xml

这通常可以在$M2_HOME/conf/settings.xml找到。

相关问题