如何从服务器执行Makefile
问题描述:
您好我完全知道Ant文件和makefile。我有一个由其他人设置的文件结构。他们基本上有一个从Makefile执行的ant文件。 ant文件将所有js脚本构建为一个文件以及与该项目相关的所有其他文件。如何从服务器执行Makefile
在运行脚本之前,我想问一些问题。
- 我可以从服务器执行Makefile吗?我可以通过终端通过SSH访问 服务器及其文件夹。我可以添加一个命令到终端 ,它将在服务器上执行Makefile。
- 该生成文件有3个设置模式,我感兴趣的是 第一个2.主要是调试版本。
版本:$(ANT_EXE)-f $(ANT_FILE) “构建发布”
调试:$(ANT_EXE)-f $(ANT_FILE) “建立调试”
文件名是刚刚的Makefile
- 我怎么会只使用调试执行文件
谢谢
答
只需使用SSH访问您的机器并执行您的Makefile就好像您在物理上使用机器一样。即:在Makefile的规则
[email protected] $> ssh ssh.machine.net
Welcome to machine.net
[email protected] $> make debug
Blablabla I am a Makefile
I am making your binary.
(Compilation nightmare)
提醒:
- A “做” 不带参数将执行第一条规则。
- 使用“作出规定”的情况下执行某些规则(在你“做调试”运行“调试”规则
答
既然你到服务器的SSH访问,而你知道在哪里和makefile ant脚本文件中,我建议使用Ant任务来执行远程蚂蚁文件。
例如,把下面的目标到本地Ant构建脚本文件(在这个例子中的build.xml)
<target name="run-remote-ant-script">
<sshexec host="chapsterj-bla.com"
username="chapsterj" password="your password here"
trust="true"
command="ant -f [path-to-your-ant-script-file/your-ant-file-name] build debug"
failonerror="false"/>
</target>
cd到包含您的loc的目录人的build.xml在本地机器上,并运行
蚂蚁运行远程蚂蚁脚本
蚂蚁会为你做其他的工作。
谢谢乔希你是什么意思的机器。其实我有一个SSH的URL和一个密码,可以让我通过终端进入根文件夹。例如:ssh [email protected]。一旦在那里有任何文件夹我需要cd到运行“make debug”comman。或者它会找到名为Makefile的文件,它位于很多子文件夹中。 – Chapsterj
“机器”我的意思是“远程服务器”。是的,你必须cd到Makefile所在的文件夹。 'make'工具(默认情况下)总是在当前文件夹中查找makefile。虽然可以使用'make -file =/path/to/file'或'make -f/this/leads/to/a/Makefile'。 更多信息:http://www.gnu.org/software/make/manual/make.html#Makefile-Names – red