簡體   English   中英

使用ant運行NetBeans項目

[英]Run NetBeans project just with ant

我有一個使用Netbeans構建的示例代碼。

它有一個build.xml文件,所以我下載了ant並嘗試運行它。

我有這個錯誤信息:

...... nbproject\build-impl.xml:76: Platform is not correctly set up

對於我所看到的,這可以通過“簡單地”下載Netbeans並從那里運行樣本來解決,但是......我不想安裝它來運行10個文件樣本。

是否有使用Java運行Netbeans項目的解決方法? 什么是我必須修改的正確的.properties文件?

可以運行直接從Java / ANT生成的項目在NetBeans,但您可能需要手動設置某些屬性和/或添加路徑JAR文件。

遺憾的是,NetBeans傾向於使用自己的JAR文件和引用屬性來包含taskdef,這些文件和引用屬性僅在/nbproject/private/private.properties文件中定義,這些文件通常在您第一次打開NetBeans項目時設置或在您編輯項目時進行修改IDE。

如果檢查build-impl.xml您應該能夠找到屬性並派生需要設置的值(OS平台),然后:

  • /nbproject/private.properties創建/設置該屬性
  • 在父build.xml添加該屬性定義
  • 使用-DPlatform=Foo調用ant目標時傳入命令行

就個人而言,我喜歡NetBeans生成的ANT文件和目標的結構,但是他們討厭有多少自定義/專有內容,這使得沒有NetBeans很難運行。

例如:

ant -Dplatforms.JDK_1.7.home=/opt/jdk 

我剛剛用ant成功構建了NetBeans項目。 這些是我必須做的事情:

  • <NetBeans-folder> / java2 / ant復制到“Netbeanless”計算機
  • 將nbproject / project.properties復制到例如ant.properties
  • 將ant.properties中的每個$ {}表達式替換為它的值
  • 添加平台。 <platform-name> .home = <path to platform>
  • 添加libs.CopyLibs.classpath = <path to nb-ant> /extra/org-netbeans-modules-java-j2seproject-copylibtask.jar
  • 將其他所需的類路徑添加到javac.classpath中(例如,servlet-api.jar的路徑)
  • ant -propertyfile ant.properties

它有效,但不會讓我開心。 我想要找到重用project.properties的方法,或者自動將其轉換為“已解析”版本(步驟3)。 然后可以自動構建構建。

我剛剛使用NetBeans 7.0項目完成了這個練習。 我能夠做的是從我的Windows系統上的.netbeans \\ 7.0目錄中復制我的build.properties文件,並為我的構建服務器創建一個server.properties文件。 這並不是一件容易的事,因為每個開發人員的build.properties可能會有所不同,因此可以預期為服務器提供另一個文件。 然后我將一個簡單的server-build.xml文件放在一起,該文件引用了這個文件,並且只執行init,compile,dist和clean的基礎知識。 我將這兩個文件提交到我的項目目錄頂層的CVS存儲庫,因為它們不與其他項目文件沖突,並在需要更新的情況下用作提醒。 現在,我可以使用“ant -f server-build.xml”在我的CI服務器上構建我的項目,一切正常。

我的整個init部分看起來像這樣,給我的服務器路徑優先,但包括NetBeans項目屬性中的必要信息。

<target name="init">
    <property file="server.properties"/>
    <property file="nbproject/project.properties"/>
</target>

在為嵌套項目定義ant任務時,我還必須做類似的事情:

<target name="compile">
    <ant antfile="${project.MyProj-common}/build.xml" inheritall="false" target="jar">
        <property location="${build.dir}" name="dist.ear.dir"/>
        <property file="server.properties"/>
        <property file="${project.MyProj-common}/nbproject/project.properties"/>
    </ant>
    ...
</target>

我不得不將project.properties中的j2ee.platform.classpath復制到我的server.properties文件中,以確保根據需要解析對j2ee.server.home的引用。 我沒想到必須這樣做,但是類路徑錯了,導致構建失敗。

感謝您提供有關此問題的信息,因為它有助於我指導此解決方案。

我剛遇到同樣的問題。 我希望我可以擺脫netbeans去eclipse和maven,就這樣。

但是這里有一個很好的鏈接,可以將netbeans中的ant構建項目導出到一個持續集成服務器(或者也可以進入任何其他IDE)。

技術進展順利。 以下是摘要:

  1. 在CI服務器上安裝netbeans(有一個沒有gui的選項,在netbeans安裝程序上使用-silent
  2. 在SVN中包含nbproject
  3. 添加到忽略列表私人文件夾
  4. 在CI服務器上創建自己的私人文件夾
  5. 使其指向您的CI服務器的文件夾(模仿用於CI的帳戶中的私人用戶文件夾)
  6. 將用戶的真實文件夾復制到此文件夾,並更改每個路徑(替換字符串)以指向CI服務器上的netbeans安裝。

它應該工作。

我正在使用Netbeans 6.8,使用Netbeans創建的java項目可以從Netbeans自動生成的構建文件中運行,而cli上只有ant。 所有常規目標,如ant compileant runant clean等“正常工作”。 (如果重要,我正在使用Fedora 13)

只是為了添加Mads的答案...通常,您需要在目標計算機上至少安裝和打開一次Netbeans。 ANT項目還依賴於USERDIR / .netbeans / ...目錄中的一些設置。 這可能已經改變了6.5+。

這將獲得一些配置的基本設置,並將類路徑定義為netbeans jar。 如果自上次在Netbeans中打開項目以來,您的依賴項(即庫)或項目正在從不同的目錄運行,則需要調整private.properties文件中的一些設置,如Mads所述。

您可以將此repo僅用於https://github.com/albfan/ant-netbeans

它克服了netbeans包裝的ant配置的所有奇怪之處,因此您只需要:

編譯:

$ ant.sh compile

跑步:

$ ant.sh run

無論如何(自動完成):

$ ant.sh <tab><tab>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM