2015-11-18 38 views
3

我正在研究用java編寫的已經編譯和運行良好的Web應用程序的代碼。在那個項目中,我找到了兩個文件,build.xml和build-impl.xml,其中包含與可以在項目上執行的操作相關的不同信息。我無法理解build.xml和build-impl.xml之間的區別

1)爲什麼需要兩個不同的文件build.xml和build-impl.xml?

2)以上兩個文件中的哪一個是強制性的?

3)誰使用這些文件以及何時和如何?

4)它們包含什麼確切的信息?

5)它們是自動生成還是必須手動創建?

+1

通常'build.xml'用於'Apache Ant',它是一個java構建工具。直到看到你的帖子,我才知道'build-impl.xml',我想這是用於'NetBeans',那麼你是否使用'NetBeans'進行開發? – kenshinji

+0

是的,我使用netbeans進行開發。 –

回答

4
  1. 爲什麼兩個不同的文件,build.xml文件和build-impl.xml中是必需的?

默認情況下,Apache Ant(一個Java庫和命令行工具,其任務是推動構建文件描述爲依賴於對方的目標和擴展點的過程。)使用build.xml作爲構建文件的名稱。

我們需要建立我們的應用程序的原因,假設我們有幾個類,如果有人想下載它們,不應單獨下載它們。所以,我們應該將我們的應用程序打包成一個jar文件(一個可啓動的jar文件對此有好處)。一旦您對您的應用程序正常工作感到滿意,您可以準備應用程序以在您的系統/ IDE /環境以外部署。

然而,從Setting Up a NetBeans Platform Application: -

build-impl.xml文件,您可以訪問到NetBeans平臺 基礎設施,比如它的 「運行」 的目標。您將永遠不需要 更改build-impl.xml文件。另一方面,build.xml 文件是Ant腳本,您將在其中根據需要自定義您的 應用程序的構建過程。


  • 其中上述兩個文件是強制性的?
  • 它們都不是強制性的。如果你有幾個類文件(或資源),那麼你應該建立你的應用程序。另外,如果你想在你的環境之外部署你的應用程序,那麼就使用build jar文件。後者默認存在於任何NetBeans Java應用程序中。

    1. 誰使用這些文件以及何時和如何?

    已經在上面回答了。當時,不要深入,它只是用於構建您的應用程序。當您使用Ant(命令行)手動構建應用程序時,您將會在何時瞭解!

    1. 它們包含什麼確切的信息?

    我已經提供了有關Ant和上面構建的NetBeans教程的鏈接。去參觀吧。這涵蓋了build.xml和build-impl.xml中包含的信息。

    1. 是自動生成還是必須手動創建?

    不,你倆都build.xmlbuild-impl.xml在默認情況下(使用NetBeans應用程序時自動生成)。而且,您將永遠不需要更改build-impl.xml.

    +0

    您能否詳細說明問題編號。 4和5? –

    +0

    你在第一點告訴我,螞蟻製造了瓶子/戰爭,但是我無法找到任何戰爭/罐子,即使在通過螞蟻清理和建造項目之後。 –

    +0

    @ user2393267 - 請參閱如何通過Ant ---> https://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html構建Java應用程序,並且您是否已經在構建文件中定位了mkdir,然後「 jar destfile =「build/jar/MainClassName.jar」basedir =「build/classes」>'?檢查您的構建文件, –

    2

    那麼,NetBeans IDE將使用這兩個文件來根據您的項目首選項強制執行特定行爲。現在在你的問題...

    1)build.xml包含對build-impl.xml的引用。這用於使用build-impl.xml行爲覆蓋build.xml。如文件中所述,build.xml僅用於Clean and Build命令。也如build.xml (If you delete it and reopen the project it will be recreated.)中所述。 build.xml並不重要。重要的文件是build-impl.xml。

    2)積聚impl.xml中是必需的,因爲它包括對JVM指令,到IDE調試器,編譯器,以在其他的螞蟻部署工具...

    3)在build.xml僅由Clean and Build使用。如果項目的Compile on Save功能已關閉,則運行,調試和測試等命令僅使用此構建腳本。 build-impl.xml由前面所述的組件使用。

    4)回答上述

    5)兩者都是由IDE自動生成。您可以編輯build.xml,但不能編輯build-impl.xml(您不必這樣做,因爲它是由IDE自動生成的)。

    更新: 這兩個文件的範圍都嚴格針對Netbeans IDE。要部署一個遠離netbeans的項目,您只需獲取提取的jar包,或者在web應用程序中進行戰爭並將其直接部署到容器中。

    據我所知,使用Netbeans創建的項目與在Eclipse中創建的項目之間沒有直接關係。

    +0

    build-impl.xml的範圍是否僅限於netbeans?如果我在NetBeans環境外部署項目,那麼build-impl.xml有什麼用處?此外,eclipse如何提供NetBeans通過build-impl.xml提供的工具? –

    +0

    @ user2393267看我的更新 – MaVRoSCy

    +0

    然後不會eclipse ant構建工具。因爲如其他答案所示,ant需要build.xml。如果eclipse不使用ant,那麼它是用來構建項目的。 –