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