我正在尝试更好地将Eclipse与我的build.xml集成。 我的构建文件为程序的本机部分调用GNU Make,而Makefile使用sudo将已编译的库移动到系统路径中。 不幸的是,这需要输入密码,Eclipse的终端不接受用户输入。 所以在eclipse中运行构建的结果是:
[exec] sudo: no tty present and no askpass program specified
[exec] make: *** [install] Error 1
有什么方法可以解决这个问题吗?蚂蚁的构建能否以其他方式提升为根?
答案 0 :(得分:3)
您可以设置/ etc / sudoers文件,以便为运行Eclipse的用户指定NOPASSWD:以及用于移动lib的命令。使用visudo命令,您可以将其添加到/ etc / sudoers的末尾:
eclipseuser ALL = NOPASSWD: /bin/cp
请注意,这确实存在安全风险,因为eclipseuser将有权覆盖系统上的任何文件。
答案 1 :(得分:2)
设置一个单独的帐户,例如部署。修改/etc/sudoers
以包含允许部署者执行单个命令的别名,例如以root身份部署。制作部署者 NOEXEC:
。将部署者密码存储在不可见的文件中,例如具有用户访问权限的 .deployconf :例如400
或600
。在ant
中加载密码,并根据需要使用:
< loadfile srcfile =“$ {user.home} /。deployconf”property =“deployconf”/>
这适用于< signjar />,但我没有尝试使用< exec />。可能需要付出一些努力才能将换行符排除在 .deployconf 之外。
答案 2 :(得分:0)
也许是一个愚蠢的'解决方案',但为什么不让部署单独一步呢?让构建产生包装工件:DEP,RPM或其他东西。