Bangun proyek menjadi JAR secara otomatis di Eclipse

171

Saya memiliki proyek Eclipse di mana saya ingin menjaga proyek Java saya dibangun menjadi JAR secara otomatis. Saya tahu saya memiliki opsi untuk mengekspor proyek ke JAR; jika saya melakukan klik kanan; tetapi yang saya benar-benar cari adalah, Eclipse seperti itu secara otomatis membuat .classfile proyek dan meletakkannya di folder target; itu juga harus membangun JAR secara otomatis dan menyalin JAR terbaru di beberapa atau lokasi tertentu.

Apakah ada opsi untuk mengkonfigurasi Eclipse sedemikian rupa, untuk membangun JAR secara otomatis?

Hanya untuk memperjelas bagi para pria, cukup sabar untuk menjawab pertanyaan saya; Saya tidak melihat ANT sebagai solusi; karena saya sudah menggunakannya, tetapi apa yang saya inginkan adalah sesuatu yang diinisiasi secara otomatis baik dengan pemicu berbasis waktu atau langsung membangun dengan perubahan.

Priyank
sumber
1
Pendapat pribadi saya: Gunakan m2e, integrasi pakar Eclipse, sehingga menghasilkan stoples untuk Anda sebagai bagian dari build. Saya baru-baru ini mencoba menggunakan Eclipse tanpa Maven dan tidak percaya betapa primitif pembangun Java dasar.
Craig Ringer
1
Untuk 2018 gunakan alat membangun bukan fungsi spesifik IDE. Maven membelikan Anda IDE independen dan dukungan baris perintah.
Thorbjørn Ravn Andersen
@Craig Ringer - adakah tautan terkait cara melakukannya?
nsandersen

Jawaban:

27

Lihat Apache Ant

Dimungkinkan untuk menggunakan Ant untuk bangunan otomatis dengan gerhana, begini caranya


sumber
Saya sudah menggunakan Apache semut untuk melakukan build dan membuat Jar. Tapi yang saya cari sebenarnya adalah cara untuk mengatasi semut apache, dan langsung menggunakan gerhana.
Priyank
Maaf, saya tidak membaca artikel di tautan sebelumnya. Memang berbicara tentang apa yang saya butuhkan. Terima kasih.
Priyank
1
Jawaban oleh Konrad lebih cocok dengan apa yang dicari OP.
lycono
lycono, saya tidak setuju - OP ingin agar toples tetap terbaru, dan mengekspor file toples tidak mencoba menyelesaikan masalah itu.
James Moore
1
Pada Juli 2011, artikel yang dirujuk oleh @Peter tidak berbicara tentang cara membuat file jar sama sekali.
James Moore
288

Anda menginginkan .jardescfile. Mereka tidak memulai secara otomatis, tetapi dalam 2 klik.

  1. Klik kanan pada proyek Anda
  2. Memilih Export > Java > JAR file
  3. Pilih file yang disertakan dan beri nama keluaran JAR, lalu klik Next
  4. Centang "Simpan deskripsi JAR ini di ruang kerja" dan pilih nama untuk .jardescfile baru

Sekarang, yang harus Anda lakukan adalah klik kanan pada .jardescfile Anda dan pilih Create JARdan itu akan mengekspornya di tempat yang sama.

Konrad
sumber
Sedih bahwa jawaban ini tidak mendapatkan lebih banyak upvote (atau jawaban terbaik) bulan lalu. Oh well, sekarang Konrad sudah pergi.
Dan Rosenstark
25
Di Eclipse Galileo, saya harus mengganti langkah 1 Anda dengan File -> Ekspor -> Jawa -> file JAR.
Matt Huggins
9
Apakah ada cara untuk mengotomatiskan langkah 'klik kanan -> Buat JAR'?
Asaf
4
Apakah ada cara untuk mengotomatiskan langkah 'klik kanan -> Buat JAR' atau ikat ke kombo kunci?
Pacerier
5
Saya menggunakan "Ekspor ... -> Jawa -> File JAR Runnable" untuk membuat hal itu.
TedTrippin
70

Buat file Ant dan beri tahu Eclipse untuk membangunnya. Hanya ada dua langkah dan masing-masing mudah dengan petunjuk langkah demi langkah di bawah ini.


Langkah 1 Buat file build.xml dan tambahkan ke paket explorer:

<?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 akan terlihat seperti tangkapan layar di bawah ini. Perhatikan ikon Sem di build.xml. Build.xml di Proyek Eclipse

Langkah 2 Klik kanan pada simpul root dalam proyek. - Pilih Properties - Pilih Builders - Pilih New - Pilih Ant Build - Pada tab Main, lengkapi path ke file build.xml di folder bin .

Konfigurasi pembangun semut Bangun langkah - Tab Target

Periksa Output

Jendela output Eclipse (bernama Konsol) akan menampilkan yang berikut setelah build:

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

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

EDIT: Beberapa komentar bermanfaat dari @yeoman dan @betlista

@yeoman Saya pikir yang benar termasuk /.class, bukan * .class, karena kebanyakan orang menggunakan paket dan dengan demikian pencarian rekursif untuk file kelas lebih masuk akal daripada inklusi datar

@betlista saya akan merekomendasikan untuk tidak memiliki build.xml di folder src

Thomas Bratt
sumber
2
Ya, Anda dapat memilih target untuk langkah pembuatan sebagai berikut: Setelah Bersih, Pembuatan Manual, Pembuatan Otomatis, dan Selama Bersih. Auto Build akan memberikan apa yang Anda inginkan :)
Thomas Bratt
8
Setelah mencoba keduanya, solusi ini tampaknya jauh lebih baik daripada Konrad. Ini mengharuskan Anda untuk secara manual mengetahui beberapa jalur dalam file build Anda tetapi memungkinkan build otomatis (bukan 2 klik) dan memungkinkan penyesuaian yang mudah (salin tabung setelah build misalnya). Berikut ini cara membuat file jar ketika memiliki file build di root dan memiliki beberapa tingkat paket bersarang:<jar jarfile="dist/mypackage.jar" basedir="bin/" includes="**/*.class" />
worldsayshi
3
+1 Bagaimana ini bukan jawaban yang diterima dan bahkan yang paling banyak dipilih?
Juan Garcia
2
Terima kasih banyak. Saya akan merekomendasikan untuk tidak memiliki build.xmlfolder src, tetapi sisanya bekerja dengan baik, luar biasa!
Betlista
1
Saya pikir termasuk benar akan / .class, bukan * .class, karena kebanyakan orang menggunakan paket dan dengan demikian pencarian file kelas secara rekursif lebih masuk akal daripada inklusi datar. Akan menghapus +1 saya sampai saat itu karena biasanya jawabannya tidak berfungsi sebagaimana mestinya.
yeoman
13

Ini dimungkinkan dengan mendefinisikan Builder khusus dalam gerhana (lihat tautan dalam jawaban Peter). Namun, kecuali proyek Anda sangat kecil, ini dapat memperlambat ruang kerja Anda secara tidak dapat diterima. Autobuild untuk file kelas terjadi secara bertahap, yaitu hanya kelas yang dipengaruhi oleh perubahan yang dikompilasi ulang, tetapi file JAR harus dibangun kembali dan disalin sepenuhnya, setiap kali Anda menyimpan perubahan.

Michael Borgwardt
sumber
1

Menggunakan jawaban Thomas Bratt di atas, pastikan build.xml Anda dikonfigurasi dengan benar:

<?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>

(Perhatikan tanda bintang ganda - ini akan memberi tahu build untuk mencari file .class di semua sub-direktori.)

Hugo Leote
sumber
0

Membuat peluncur pembangun adalah masalah karena 2 proyek tidak dapat memiliki nama pembangun alat eksternal yang sama. Setiap nama harus unik. Saat ini saya menghadapi masalah ini untuk mengotomatiskan bangunan saya dan menyalin JAR ke lokasi eksternal.

Saya menggunakan Zip Builder IBM, tetapi itu hanya membantu tetapi tidak melakukan yang sebenarnya.

Orang dapat mencoba menggunakan plugin IBM ZIP Creation. http://www.ibm.com/developerworks/websphere/library/techarticles/0112_deboer/deboer2.html#download

Anand Bansal
sumber