2012-01-28 49 views
1

我正在嘗試使用ant腳本爲某些JPA實體編譯規範元模型類。我正在使用OpenJPA。我希望生成的文件位於一個子目錄中,根據OpenJPA文檔,我可以通過爲javac指定-s選項來執行此操作。我想現在要做的這一權利的方式是這樣的:如何在ant腳本中引用javac的-s標誌?

<compilerarg value="-s c:\buildfiles"/> 

不過,我不斷收到一個錯誤,指出:

javac: invalid flag: -s 
Usage: javac <options> <source files> 

如果我做的:

<compilerarg value="-version"/> 

它告訴我,我正在使用1.6。如果我這樣做:

<compilerarg value="-help"/> 

它列出了-s作爲一個有效的選項。有沒有人有什麼建議我可以做什麼來完成我想要做的事情?謝謝!

回答

2

你有兩個 args在那裏,他們之間有一個空格。你只需將它們分開:

<compilerarg value="-s"/> 
<compilerarg value="c:\buildfiles"/> 

此刻你解析單個ARG「-s C:\構建文件」。如果您運行

ant -verbose 

您可以驗證這一點 - 你會看到類似這樣的:

[javac] Compilation arguments: 
    [javac] '-classpath' 
    [javac] '' 
    [javac] '-sourcepath' 
    [javac] '/a/b/c' 
    [javac] '-target' 
    [javac] '1.5' 
    [javac] '-g:none' 
    [javac] '-s c:\buildfiles' <-- here is the problem 
    [javac] '-source' 
    [javac] '1.5' 
    [javac] 
    [javac] The ' characters around the executable and arguments are 
    [javac] not part of the command. 
+0

優秀。謝謝! – user1148956 2012-01-28 00:45:38