2011-08-19 44 views
0

您好我完全知道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. 我怎麼會只使用調試執行文件

謝謝

回答

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

1

既然你到服務器的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