20

Netbeans でビルドされたサンプル コードがあります。

build.xml ファイルがあるので、ant をダウンロードして実行してみました。

次のエラー メッセージが表示されます。

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

私が見る限り、これは「単純に」Netbeans をダウンロードしてそこからサンプルを実行することで修正されますが、10 ファイルのサンプルを実行するためにインストールしたくありません。

Java で Netbeans プロジェクトを実行するための回避策はありますか? 変更する必要がある正しい .properties ファイルは何ですか?

4

7 に答える 7

12

NetBeans で生成されたプロジェクトを Java/ANT から直接実行すること可能ですが、一部のプロパティを手動で設定したり、jar ファイルへのパスを追加したりする必要がある場合があります。

残念ながら、NetBeans は独自の JAR ファイルを使用して taskdef を含める傾向があり、/nbproject/private/private.propertiesファイルでのみ定義されているプロパティを参照します。これらは通常、NetBeans プロジェクトを最初に開いたときに設定されるか、IDE でプロジェクトを編集するときに変更されます。

を調べるbuild-impl.xmlと、プロパティを見つけて、設定する必要がある値を導き出すことができるはずです (OS プラットフォーム)。次に、次のいずれかを行います。

  • でプロパティを作成/設定します /nbproject/private.properties
  • そのプロパティ定義を親に追加しますbuild.xml
  • を使用してantターゲットを呼び出すときにコマンドラインで渡します-DPlatform=Foo

個人的には、NetBeans で生成された ANT ファイルとターゲットの構造は気に入っていますが、NetBeans なしで実行するのが難しくなっているカスタム/独自仕様の要素の多さは嫌いです。

例えば:

ant -Dplatforms.JDK_1.7.home=/opt/jdk 
于 2009-05-27T01:00:41.130 に答える
4

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)。その後、ビルドを自動化できます。

于 2009-08-29T10:06:52.077 に答える
1

NetBeans 7.0 プロジェクトでこの演習を行いました。私ができたのは、Windows システムの .netbeans\7.0 ディレクトリから build.properties ファイルをコピーし、ビルド サーバー用の server.properties ファイルを作成することでした。すべての開発者の build.properties は異なる可能性があるため、サーバー用に別のファイルを用意する必要があるため、これは大したことではありません。次に、このファイルを参照し、init、compile、dist、および clean の基本のみを実行する単純な server-build.xml ファイルを作成します。これらの 2 つのファイルは、プロジェクト ディレクトリの最上位にある 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>

j2ee.server.home への参照が必要に応じて解決されるように、j2ee.platform.classpath を project.properties から server.properties ファイルにコピーする必要がありました。これを行う必要があるとは思っていませんでしたが、そうでなければクラスパスが間違っていたため、ビルドが失敗しました。

この質問に関する情報に感謝します。この解決策を導くのに役立ちました。

于 2011-09-19T19:19:55.460 に答える
1

私はちょうど同じ問題に直面しました。そのためだけに、netbeans を削除して Eclipse と Maven に移行できることを願っています。

しかし、これは、ant ビルド プロジェクトを netbeans から継続的インテグレーション サーバー (または他の IDE にも) にエクスポートするための適切なリンクです。

テクニックはかなり進んでいます。要約は次のとおりです。

  1. CIサーバーにnetbeansをインストールします(GUIなしで実行するオプションがあり-silent、netbeansインストーラーで使用します)
  2. nbprojectSVNに含める
  3. プライベートフォルダーを無視リストに追加
  4. CI サーバーに独自のプライベート フォルダーを作成する
  5. CIサーバーのフォルダーを指すようにします(CIに使用されるアカウントのプライベートユーザーフォルダーを模倣します)
  6. 実際のフォルダーをユーザーからこのフォルダーにコピーし、すべてのパスを変更して (文字列を置き換えて)、CI サーバーにインストールされた netbeans を指すようにします。

そして、それはうまくいくはずです。

于 2011-11-17T18:57:18.397 に答える
0

私は Netbeans 6.8 を使用しており、Netbeans で作成された Java プロジェクトは、cli の ant だけで Netbeans 自動生成ビルド ファイルから実行できます。ant compileant run、などのすべての通常のターゲットはant clean「うまく機能します」。(問題があれば、Fedora 13を使用しています)

于 2010-10-15T14:50:58.880 に答える