如何从服务器执行Makefile

问题描述:

您好我完全知道Ant文件和makefile。我有一个由其他人设置的文件结构。他们基本上有一个从Makefile执行的ant文件。 ant文件将所有js脚本构建为一个文件以及与该项目相关的所有其他文件。如何从服务器执行Makefile

在运行脚本之前,我想问一些问题。

  1. 我可以从服务器执行Makefile吗?我可以通过终端通过SSH访问 服务器及其文件夹。我可以添加一个命令到终端 ,它将在服务器上执行Makefile。
  2. 该生成文件有3个设置模式,我感兴趣的是 第一个2.主要是调试版本。

版本:$(ANT_EXE)-f $(ANT_FILE) “构建发布”

调试:$(ANT_EXE)-f $(ANT_FILE) “建立调试”

文件名是刚刚的Makefile

  1. 我怎么会只使用调试执行文件

谢谢

只需使用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 “做” 不带参数将执行第一条规则。
  • 使用“作出规定”的情况下执行某些规则(在你“做调试”运行“调试”规则
+0

谢谢乔希你是什么意思的机器。其实我有一个SSH的URL和一个密码,可以让我通过终端进入根文件夹。例如:ssh [email protected]。一旦在那里有任何文件夹我需要cd到运行“make debug”comman。或者它会找到名为Makefile的文件,它位于很多子文件夹中。 – Chapsterj

+0

“机器”我的意思是“远程服务器”。是的,你必须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

既然你到服务器的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在本地机器上,并运行

蚂蚁运行远程蚂蚁脚本

蚂蚁会为你做其他的工作。

+0

以前从未使用过蚂蚁,但是...哇,这个sshexec函数肯定可以派上用场O_O我upvote为蚂蚁的伟大:) – red

+0

在我的工作的大蚂蚁构建文件中,有近一百行sshexec lol ... – coolcfan