Ant build.xml需要用户输入,但Eclipse没有tty

时间:2010-03-25 18:59:12

标签: java eclipse ant sudo

我正在尝试更好地将Eclipse与我的build.xml集成。 我的构建文件为程序的本机部分调用GNU Make,而Makefile使用sudo将已编译的库移动到系统路径中。 不幸的是,这需要输入密码,Eclipse的终端不接受用户输入。 所以在eclipse中运行构建的结果是:

 [exec] sudo: no tty present and no askpass program specified
 [exec] make: *** [install] Error 1

有什么方法可以解决这个问题吗?蚂蚁的构建能否以其他方式提升为根?

3 个答案:

答案 0 :(得分:3)

您可以设置/ etc / sudoers文件,以便为运行Eclipse的用户指定NOPASSWD:以及用于移动lib的命令。使用visudo命令,您可以将其添加到/ etc / sudoers的末尾:

eclipseuser ALL = NOPASSWD: /bin/cp

请注意,这确实存在安全风险,因为eclipseuser将有权覆盖系统上的任何文件。

答案 1 :(得分:2)

设置一个单独的帐户,例如部署。修改/etc/sudoers以包含允许部署者执行单个命令的别名,例如以root身份部署。制作部署者 NOEXEC:。将部署者密码存储在不可见的文件中,例如具有用户访问权限的 .deployconf :例如400600。在ant中加载密码,并根据需要使用:

  

< loadfile srcfile =“$ {user.home} /。deployconf”property =“deployconf”/>

这适用于< signjar />,但我没有尝试使用< exec />。可能需要付出一些努力才能将换行符排除在 .deployconf 之外。

答案 2 :(得分:0)

也许是一个愚蠢的'解决方案',但为什么不让部署单独一步呢?让构建产生包装工件:DEP,RPM或其他东西。