2012-04-02 12 views
1

今月は、antビルド中に生成されるjarファイルの1つが0バイトのサイズである間欠的な問題が発生しました。この0バイトのjarファイルは、earファイルにパッケージ化され、その後のデプロイメントは失敗します。私のプロジェクト構造は次のようになります。ディレクトリを構築した0バイトのjarファイルを生成するAntビルド

myProj 
    myProj-common 
    myProj-ejb 
    myProj-web 

それは0バイトであるlibににmyProj-common.jarをファイルでこれらのファイルに

lib 
    myProj-common.jar <-- sometimes 0 bytes 
META-INF 
    application.xml 
    MANIFEST.MF 
myProj-common.jar <-- never 0 bytes 
myProj-ejb.jar 
myProj-web.war 

が含まれています。メインビルドディレクトリにあるものは常に正しいサイズです。なぜ私が最終結果にjarファイルの2つのコピーを持っているのかはわかりません。すべてのAntビルドスクリプトは、NetBeansによって自動的に生成されました。

私はまだantビルドファイルの内容を学んでいるので、なぜそれほど複雑であるのかは完全にわかりません。私は、Solarisサーバー上のHudson環境でソフトウェアを構築するために使用する幾分最小限の代替build.xmlファイルを作成しました。そのビルドにはこの問題はありません。

NetBeans 7.0.1から7.1.1へのアップグレード後、問題はより頻繁に発生し、プロジェクトをNetBeans内またはコマンドライン内にビルドするかどうかに関係なく発生します。私がこの問題を抱えているシステムは、Windows XPを実行します。 NB 7.0.1では、おそらく6回で1回悪くなった。今、私は良いことがあるかもしれません。

私がこれをデバッグするために探しているはずのポインタは、一番高く評価されます。

答えて

0

これは、私たちのディスク全体の暗号化ソフトウェアであるPGP Desktopと競合しているようです。最近、私のラップトップで劣化モードで動作していたので、ビルドがかなり遅くなっていましたが、問題が発生することはありませんでした。私の推測では、低レベルのドライバーが、何らかの行動を取って完了し、書き込みバッファをフラッシュするために残っているのは、この時です。現在、書き込みバッファがフラッシュされる前にjarファイルがコピーされているように見えます。したがって、0バイトのファイルがコピーされています。 Antにはエラーが表示されないため、ビルドプロセスでエラーが発生しません。

残念ながら、jarファイルがコピーされる前に遅延をスローするようにビルドスクリプトを変更することを除いて、私はできることはあまりありません。今すぐ私の回避策は、完全なクリーンとビルドの後にjarファイルを手動でコピーしてから、ビルドを実行する(クリーンとビルドとは対照的に)、イヤファイルを再パッケージするのに数秒しかかかりません。

NetBeansをアップグレードしたときに問題が発生した理由は、IDEの変更によってビルドが高速化され、バッファリングの問題が頻繁に発生したためです。

0

-d(debug)フラグと-v(verbose)フラグを指定してAntを実行すると、何が起きているのか把握できるはずです。これらのフラグをNetBeansに追加するか、コマンドラインからNetBeansで生成されたビルドファイルを実行することができます。

+0

感謝。私はそれらのオプションを試し、私が見つけることができるものを見ます。私は、何らかの進歩を遂げるか、解決したら報告します。 –

+0

問題が発生したビルド用のantデバッグ出力を取得できました。しかし、豊富な出力と、主にmyProj-common.jarの発生のキーイングを調べると、ビルド中に何か問題が起こったというエラーや兆候は見られません。探している共通の蟻の問題の提案はありますか?明らかではないかもしれませんか? –

0

私は最近同様の問題が発生していました。要約すると、いくつかのEJBファイルとWARファイルを含むEARファイルがあります。私はNetbeans 7.2でWindows 7の64ビット環境にあり、ローカルのJBoss 7サーバーで実行しています。

私は2つの事のうちの1つを行うと、これが起こるのを見ました。

  1. 私はプロジェクトにjarファイルまたはライブラリを追加し、私はクリーンを行うと、それを
  2. を削除し、私はこの問題に何度も遭遇した

EARファイルをビルドするとき、それはです今は面白くない。私はあなたとまったく同じ問題を抱えているのかどうかは分かりませんが、ここで私の問題を解決しました。

任意のjarファイルやライブラリを削除した後、あなたはきれいにして構築する必要があります。 JARファイルまたはライブラリを削除すると、空のjarファイルがEARのlibフォルダにあります。これを清掃すると、問題が軽減されます。ここで

は私に何が起こる主なものです。

  1. すべての依存プロジェクトとEARファイル自体を消去し、すべての/ distフォルダが確実になくなったことを確認しました。
  2. EARファイルで「Clean and Build」を選択しました。
  3. 私はdist /フォルダ内のEARファイルを開いて、常に「空」またはゼロのサイズである私の/ libフォルダ内に少なくとも1つのJARファイルがあることを見ました。

サイズがゼロのプロジェクトのみをクリーンアップしてビルドします。次に、「ビルド」を選択し、ではなく、 EARファイルで「クリーンアンドビルド」を選択します。私はこれが役立つことを願っています

私は唯一のEJBが、それは私のWARファイルに依存だから二回に構築されている、そしてそれは第二のビルド時に/ libフォルダにコピーされることを理論化することができます。私はどんな蟻のデバッグもしていませんが、これが私の問題の解決策であることがわかりました。

概要:クリーンかつ適切に構築し、あなたのlibフォルダにサイズ0のように終わるプロジェクトを-ing必ず「を削除して構築」されていることを確認し、その後、あなただけのEARファイルの「構築」ヒット。

幸運を祈る!

1

私はそれが古い質問ですけど、マイルの経験を共有することは多分誰かを助けます。私はLinux上のNetBeans 8.0.2と同じ問題を持っていた

、私のエンタープライズプロジェクトのlibフォルダには、次のようになります。

~/NetBeansProjects/myeeproject/build/lib $ ls -l 
-rw-rw-r-- 1 user1 user1 16013 jan 5 11:52 my_lib.jar 
-rw-rw-r-- 1 user1 user1 1489258 jan 5 11:52 my_ws_lib.jar 
-rw-rw-r-- 1 user1 user1  0 jan 5 11:52 commons-lang3-3.1.jar 
-rw-rw-r-- 1 user1 user1  0 jan 5 11:52 itextpdf-5.4.5.jar 
-rw-rw-r-- 1 user1 user1  0 jan 5 11:52 primefaces-4.0.jar 
-rw-rw-r-- 1 user1 user1  0 jan 5 11:52 primefaces-extensions-1.1.0.jar 

と私は、サーバーをGlassFishのためのプロジェクトを展開することはできません。 032バイトのjarファイルを削除してからビルド(またはデプロイ)を行うと、毎回動作することが判明しました。問題は、すでにファイルが存在する場合、netbeansはライブラリをコピーしないだけで、ファイルサイズをチェックしないため、netbeansを強制的に削除して新しいコピーを作成するということです。

さようなら

+0

"0バイトのjarファイルを削除してからビルドを行っていることがわかりました..."これは私にとってはうまくいった、ありがとう。 – DavidS

0

が、私はここに、この問題に対する解決策が見つかりました:私の場合(Nebeans 8.0.2)ではhttps://netbeans.org/bugzilla/show_bug.cgi?id=216033

を、私のエンタープライズアプリケーションのために、「保存時にコンパイル」チェックボックスをオフにするのに十分でした。 (プロジェクトのプロパティ - >コンパイル - >保存でコンパイル)

関連する問題