2009-08-01 92 views
0

我想用ant來構建一個應用程序,運行應用程序的main()方法,運行junit測試,並將所有內容都打包到一個jar文件中(source +建+庫+ build.xml文件)。這些類包含一個帶有main()方法入口點的runner類。用ant創建一個可執行jar文件,其中包含build.xml文件

但是,目標是包含所有使用的庫,如junit.jar和ant build.xml本身。

我想知道是否有可執行的jar文件的方式來運行ant構建文件itslef的選定目標,而不是隻是main()方法。顯然,我不需要再次運行編譯目標,而只需要運行main()方法(運行目標中的java元素)和junit目標。那可能嗎?

非常感謝您的見解!

+0

denchr,我回答你的問題了嗎?如果沒有,請澄清你想達到的目標,然後編輯我的回覆(或者其他人提供更好的回覆)。如果我這樣做了,請投票或接受答案 - 這就是SO的工作方式,而且您的大部分問題似乎都沒有這樣做。 – ChssPly76 2009-08-01 17:12:22

回答

3

「可執行的jar」不是你認爲的那樣。它允許你將所有的你的類打包在一起(你也可以添加源代碼,雖然我看不到這點),並在jar清單中使用Main-Class屬性聲明一個主類。詳情是here

然後,您可以使用「java -jar my.jar」命令行啓動該jar,該命令行將調用您指定的類的main()方法。您也可以在清單文件中通過Class-Path屬性specify classpath指向您的應用程序所需的其他罐子。那並不意味着這些罐子存檔在你的罐子裏;事實上,如果你這樣做,JVM將無法從這些jar中加載類,除非你要採取特殊的預防措施並編寫自定義類加載器。

相關問題