Eclipseで自動的にプロジェクトをJARにビルドする


171

JavaプロジェクトをJARに自動的にビルドしたままにしたいEclipseプロジェクトがあります。プロジェクトをJARにエクスポートするオプションがあることはわかっています。右クリックすると、しかし、私が本当に探しているのは、Eclipseがプロジェクトの.classファイルを自動的にビルドしてターゲットフォルダーに配置するようなものです。また、JARを自動的に構築し、最新のJARを一部または特定の場所にコピーする必要があります。

JARを自動的に構築するために、Eclipseをこのように構成するオプションはありますか?

みんなにはっきりさせるために、私の質問に答えるのに十分忍耐強く。私はANTを解決策として考えていません。私はすでにそれを使用していますが、時間ベースのトリガーまたは変更を伴う即時ビルドのいずれかで自動的に開始されるものを望んでいます。


1
私の個人的な意見:Eclipseのmaven統合であるm2eを使用して、ビルドの一部としてjarを出力します。私は最近、MavenなしでEclipseを使用しようとしましたが、基本的なJavaビルダーがどれほど原始的であるか信じられません。
クレイグリンガー、

1
2018年は、IDE固有の機能の代わりにビルドツールを使用します。MavenはIDEの独立性とコマンドラインサポートを購入します。
–ThorbjørnRavn Andersen 2018

@Craig Ringer-それを行う方法に関するリンクはありますか?
nsandersen

回答:


27

Apache Antをチェックしてください。

それは自動で日食を構築するためのAntを使用することが可能ですが、ここではどのようです


私はすでにApache antを使用してビルドを行い、jarを作成しています。しかし、私が本当に探していたのは、Apache antを回避する方法であり、直接Eclipseを使用する方法でした。
Priyank 2009年

申し訳ありませんが、以前のリンクの記事は読みませんでした。それは確かに私が必要なものについて話します。ありがとう。
Priyank 2009年

1
Konradの回答は、OPが求めていたものとより密接に一致します。
リコノ2011

lycono、私は同意しません-OPはjarを最新の状態に保つことを望んでおり、jarファイルをエクスポートしてもその問題は解決されません。
James Moore

1
2011年7月、@ Peterが参照した記事では、jarファイルの構築方法についてはまったく触れられていません。
James Moore

288

.jardescファイルが必要です。それらは自動的に開始されませんが、2クリック以内です。

  1. プロジェクトを右クリック
  2. 選ぶ Export > Java > JAR file
  3. インクルードファイルを選択し、出力JARに名前を付けて、 Next
  4. 「このJARの説明をワークスペースに保存」をチェックして、新しい.jardescファイルの名前を選択します

これで、.jardescファイルを右クリックして選択Create JARするだけで、同じ場所にエクスポートされます。


この回答が数か月前にこれ以上の投票(または最良の回答)を得られなかったのは悲しいことです。まあ、今ではコンラッドはなくなっています。
Dan Rosenstark、2010年

25
Eclipse Galileoでは、ステップ1をFile-> Export-> Java-> JARファイルに置き換える必要がありました。
Matt Huggins、2010

9
「右クリック-> JARの作成」ステップを自動化する方法はありますか?
Asaf 2011

4
「右クリック-> JARの作成」ステップを自動化する方法、またはキーコンボにバインドする方法はありますか?
パセリエ

5
「Export ...-> Java-> Runnable JAR file」を使用して、それを正確に作成します。
TedTrippin 2013年

70

Antファイルを作成し、Eclipseにビルドするように指示します。手順は2つしかなく、それぞれの手順は以下の手順に従って簡単に行えます。


ステップ1 build.xmlファイルを作成し、パッケージエクスプローラに追加します。

<?xml version="1.0" ?>
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TestMain" default="CreateJar">
  <target name="CreateJar" description="Create Jar file">
        <jar jarfile="Test.jar" basedir="." includes="*.class" />
  </target>
</project>

Eclipseは次のスクリーンショットのようになります。build.xmlのAntアイコンに注意してください。 EclipseプロジェクトのBuild.xml

ステップ2 プロジェクトのルートノードを右クリックします。-プロパティの選択-ビルダーの選択-新規の選択-Antビルドの選択-[メイン]タブで、binフォルダー内のbuild.xmlファイルへのパスを入力します。

Antビルダーの構成 ビルドステップ-ターゲットタブ

出力を確認する

Eclipse出力ウィンドウ(Consoleという名前)は、ビルド後に次のように表示されます。

Buildfile: /home/<user>/src/Test/build.xml

CreateJar:
         [jar] Building jar: /home/<user>/src/Test/Test.jar
BUILD SUCCESSFUL
Total time: 152 milliseconds

編集:@yeomanと@betlistaによるいくつかの役立つコメント

@yeoman私は正しいインクルードは* .classではなく/.classだと思う

@betlista build.xmlをsrcフォルダに入れないことをお勧めします


2
はい、ビルドステップのターゲットを次のように選択できます。クリーン後、手動ビルド、自動ビルド中、およびクリーン中。自動ビルドはあなたが望むものをあなたに与えるはずです:)
Thomas Bratt

8
両方を試した後、このソリューションはKonradのソリューションよりもはるかに優れているようです。ビルドファイルのパスを手動で把握する必要がありますが、2回クリックする代わりに自動ビルドが可能で、カスタマイズも簡単です(ビルド後にjarをコピーするなど)。ここでは、ルートでビルドファイルを持つとパッケージの複数のネストされたレベルを有する際にjarファイルを構築する方法は次のとおりです。<jar jarfile="dist/mypackage.jar" basedir="bin/" includes="**/*.class" />
worldsayshi

3
+1これが受け入れられた回答であり、最高投票数の回答でさえないのはなぜですか?
フアンガルシア

2
どうもありがとうございました。私はbuild.xmlsrcフォルダーに入れないことをお勧めしますが、残りはうまくいきます、素晴らしい!
Betlista 2016

1
正しいインクルードは* .classではなく/ .classになると思います。ほとんどの人がパッケージを使用しているため、クラスファイルの再帰的検索はフラットインクルードよりも意味があります。それまでは答えが通常は機能しないため、それまで私の+1を削除します。
ヨーマン2017

13

これは、Eclipseでカスタムビルダーを定義することで可能です(Peterの回答のリンクを参照)。ただし、プロジェクトが非常に小さい場合を除き、ワークスペースが許容できないほど遅くなる可能性があります。クラスファイルの自動ビルドは段階的に行われます。つまり、変更の影響を受けるクラスのみが再コンパイルされますが、変更を保存するたびにJARファイルを再構築して完全にコピーする必要があります。



1

上記のThomas Brattの回答を使用して、build.xmlが正しく構成されていることを確認してください:

<?xml version="1.0" ?>
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TestMain" default="CreateJar">
  <target name="CreateJar" description="Create Jar file">
        <jar jarfile="Test.jar" basedir="bin/" includes="**/*.class" />
  </target>
</project>

ダブルアスタリスクに注意してください-これは、すべてのサブディレクトリで.classファイルを探すようにビルドに指示します。)


0

2つのプロジェクトに同じ外部ツールビルド名を付けることはできないため、ビルダーランチャーの作成は問題です。それぞれの名前は一意である必要があります。ビルドを自動化してJARを外部の場所にコピーするために、現在この問題に直面しています。

私はIBMのZip Builderを使用していますが、これは単なる助けにすぎませんが、実際にはそうではありません。

人々はIBM ZIP Creationプラグインを使ってみることができます。 http://www.ibm.com/developerworks/websphere/library/techarticles/0112_deboer/deboer2.html#download

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.