Saya memiliki sebuah proyek yang berisi satu modul, dan beberapa dependensi. I'd seperti untuk membuat botol, dalam direktori terpisah, yang berisi menyusun modul. Selain itu, saya'd ingin memiliki dependensi hadir di samping saya modul.
Tidak peduli bagaimana aku memutar IntelliJ's "membangun jar" proses, output dari modul saya tampak kosong (selain META-INF).
Berikut ini's bagaimana untuk membangun sebuah botol dengan IntelliJ 10 http://blogs.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/
File -> Struktur Proyek -> Pengaturan Proyek -> Artefak -> Klik green plus sign -> Jar -> Dari modul-modul dengan dependensi...
Di atas menetapkan "kerangka" ke mana botol akan disimpan untuk. Untuk benar-benar membangun dan menyimpannya melakukan hal-hal berikut:
Ekstrak ke target Jar
OK
Membangun | Membangun Artefak
Ini masih merupakan masalah di tahun 2017, saya berharap ini akan membantu seseorang di luar sana! Saya menemukan 2 kemungkinan untuk menciptakan bekerja jar-s di bawah IntelliJ 2017.2
1. Menciptakan artefak dari IntelliJ:
Anda harus mengubah mewujudkan direktori:
<project folder>\src\main\java
ganti "java" dengan "sumber daya"
<project folder>\src\main\resources
Ini adalah bagaimana hal itu akan terlihat seperti:
Kemudian anda memilih dependensi apa yang anda ingin menjadi yang dikemas DALAM toples anda, atau di DEKAT anda file jar
Untuk membangun artefak anda pergi untuk membangun artefak dan pilih "membangun kembali". Itu akan membuat "out" folder dengan file jar dan dependensi.
2. Menggunakan maven-perakitan-plugin
Tambahkan membangun bagian ke pom file
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<finalName>ServiceCreate</finalName>
<appendAssemblyId>false</appendAssemblyId>
<archive>
<manifest>
<mainClass>com.svt.optimoo.App</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
Prosedur ini akan membuat file jar di bawah "target" folder
Saya baru-baru ini masalah dan berpikir ini langkah-langkah yang mudah untuk diikuti jika sebelumnya solusi atau link yang hilang detail.
Cara membuat .jar
menggunakan IntelliJ IDEA 14.1.5:
Berikut ini adalah 2 contoh dengan maven project, langkah demi langkah:
screen capture: 4. buka maven project kotak dengan klik pada ikon pencarian dan ketik maven,
menguji jar menggunakan
java -jar
MANIFEST.MF harus di folder resources dan Main.Class kebutuhan untuk merujuk ke {package}-{kelas-nama-yang-berisi-utama-kelas}
Hal ini mungkin sedikit terlambat, tapi saya berhasil menyelesaikannya dengan cara ini -> buka dengan winrar dan menghapus ECLIPSEF.RSA dan ECLIPSEF.SF di META-INF, apalagi menempatkan "Main-class: main_class_name" (tanpa ".kelas") di MANIFEST.MF. Pastikan bahwa anda menekan "Enter" dua kali setelah baris terakhir, jika tidak maka tidak't bekerja.
Ketika saya menggunakan ini solusi kesalahan ini datang:
java -jar xxxxx.jar
tidak utama mewujudkan atribut, di xxxxx.jar
dan solusi:
Anda harus mengubah mewujudkan direktori:
<project folder>\src\main\java
perubahan jawa untuk sumber daya
<project folder>\src\main\resources
Dengan Maven anda dapat menggunakan plugin ini:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>[path you class main]</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Ide 8.1.3
Jar ok, karena tidak disusun output di 'output' direktori (proyek/keluar/produksi/
Saya kira, anda harus menjalankan 'membuat' sebelum membangun jar
untuk dependensi hanya memeriksa "tampilkan perpustakaan" dan memilih apa yang anda ingin.
Beberapa jawaban lainnya adalah sia-sia karena segera setelah anda mengimpor kembali IntelliJ IDEA proyek dari proyek maven, semua perubahan akan hilang.
Gedung jar kebutuhan dapat dipicu oleh run/debug konfigurasi, bukan dengan pengaturan proyek.
Jetbrains telah deskripsi tentang bagaimana anda dapat mencapai hal ini di sini:
https://www.jetbrains.com/help/idea/maven.html
Gulir ke bawah ke bagian yang disebut "Mengkonfigurasi pemicu untuk Maven tujuan".
(Satu-satunya kelemahan dari deskripsi mereka adalah bahwa mereka screenshot di default hitam-pada-skema warna putih bukan super-awesome darcula tema. Ugh!)
Jadi, pada dasarnya, apa yang anda lakukan adalah bahwa anda terbuka "Maven Proyek" panel, anda menemukan proyek yang menarik, (dalam kasus anda, proyek yang membangun jar,) di bawah ini anda cari maven tujuan yang ingin anda jalankan, (biasanya "paket" tujuan menciptakan guci,) anda membuka menu konteks di atasnya, (klik kanan pada mesin Windows,) dan akan ada sebuah "Jalankan sebelum Run/Debug..." opsi yang dapat anda pilih dan itu akan membawa anda dengan tangan dari sana. Benar-benar mudah.
Saya mencoba untuk membangun sebuah botol a multi-modul Kotlin aplikasi dan semakin terkenal 'tidak utama mewujudkan atribut' kesalahan. Membuat manifest direktori di src/main/resources
didn't bekerja dengan baik.
Sebagai gantinya, ia bekerja ketika membuat itu di src
langsung: src/META-INF/MANIFEST.MF
.
Jika anda menggunakan pihak ketiga perpustakaan dengan proyek anda atau jika anda memiliki masalah dengan menciptakan TERWUJUD.MF file dengan benar, bisa ada konflik ketika menjalankan file JAR yang dihasilkan dengan menggunakan
File > Project Structure > Artifacts > '+' > JAR > From modules with dependencies > .....
metode yang disebutkan di atas.
Bukannya saya sarankan anda untuk membuat TOPLES kosong dan tambahkan semua unsur-unsur lain untuk output root manual. Indah artikel blog untuk metode ini dapat ditemukan di sini: http://karthicraghupathi.com/2016/07/10/creating-an-executable-jar-in-intellij-idea/ saya mencoba langkah-langkah yang disebutkan di sana dan semuanya bekerja dengan baik bagi saya!
Berikut ini adalah jawaban resmi dari IntelliJ IDEA 2018.3 Membantu. Aku mencoba dan Itu berhasil.
Untuk membangun sebuah file JAR dari modul;
Pada menu utama, pilih Membangun | Membangun Artefak.
Dari daftar drop-down, pilih yang diinginkan artefak dari jenis JAR. daftar menunjukkan semua artefak dikonfigurasi untuk proyek saat ini. Untuk memiliki semua dikonfigurasi artefak yang dibangun, memilih Membangun semua artefak pilihan.
Anda mungkin ingin mengambil melihat Maven (http://maven.apache.org). Anda dapat menggunakannya baik sebagai utama membangun proses untuk aplikasi anda, atau hanya untuk melakukan tugas-tugas tertentu melalui Edit Konfigurasi dialog. Proses pembuatan BOTOL dari sebuah modul dalam Maven ini cukup sepele, jika anda ingin memiliki semua dependensi dalam diri-executable JAR yang sepele juga.
Jika anda've pernah menggunakan Maven sebelum kemudian anda ingin membaca Baik Membangun Dengan Maven.
Masalah saya adalah ini: saya menggunakan Intellij IDEA (mencoba versi yang berbeda) + Gradle. Ketika saya menyusun proyek dan dibangun artifacf jar, seperti yang ditunjukkan di atas tanggapan, saya menerima kesalahan - "tidak ada utama mewujudkan attrubute ..."
Solusi ini bekerja untuk saya (terima kasih khusus untuk Thilina Pucat Gamage (lihat di atas) untuk tip):
Kutipan - jika anda menggunakan perpustakaan eksternal dan membangun sebuah proyek melalui Pengaturan Proyek - Artefak - Tambahkan (+) - Jar - Dari modul-modul dengan dependensi, kemudian mungkin karena program bug META-INF dengan MANIFEST_MF file yang tidak termasuk ke jar. Untuk menghindari hal itu membuat KOSONG file jar.
Pengaturan proyek - Artefak - Tambahkan (+) - Jar - JAR KOSONG. META-INF folder akan ditambahkan ke sumber daya folder. Kemudian pilih kelas utama. Anda akan melihat berikut jar struktur: Perhatikan adanya folder META-INF Kemudian anda dapat membangun proyek anda dan membangun artefak. Solusi ini bekerja untuk javaFX aplikasi juga.