Bagaimana cara menambahkan file konfigurasi atau sumber daya lainnya ke dalam jar saya menggunakan gradle?
Struktur proyek saya:
src / main / java / com / perseus / .. --- Paket Java (file sumber)
src / main / java / config / *. xml --- File konfigurasi musim semi
Struktur toples yang diharapkan:
com / perseus / .. --- Paket Java (file kelas)
config / *. xml --- File konfigurasi musim semi
gradle
build.gradle
Pritesh Mhatre
sumber
sumber
Pindahkan file konfigurasi dari
src/main/java
kesrc/main/resources
.sumber
Terima kasih teman-teman, saya sedang memigrasi proyek yang sudah ada ke Gradle dan tidak terlalu menyukai gagasan untuk mengubah struktur proyek.
Saya telah menemukannya, menurut saya informasi ini dapat berguna untuk pemula.
Berikut adalah contoh tugas dari 'build.gradle' saya:
version = '1.0.0' jar { baseName = 'analytics' from('src/main/java') { include 'config/**/*.xml' } manifest { attributes 'Implementation-Title': 'Analytics Library', 'Implementation-Version': version } }
sumber
sourceSets.main.resources { srcDirs = ["src/main/java"]; exclude "**/*.java" }
.Secara default semua file yang Anda tambahkan
src/main/resources
akan dimasukkan ke dalam toples.Jika Anda perlu mengubah perilaku itu karena alasan apa pun, Anda dapat melakukannya dengan mengonfigurasi
sourceSets
.Ini bagian dari dokumentasi memiliki semua rincian
sumber
.../resources/
yang disertakan, bukan direktori resource dengan konten tersebut?Saya mengalami masalah yang sama. Saya memiliki file PNG dalam paket Java dan tidak diekspor dalam JAR terakhir bersama dengan sumbernya, yang menyebabkan aplikasi macet saat dimulai (file tidak ditemukan).
Tidak ada jawaban di atas yang memecahkan masalah saya, tetapi saya menemukan solusinya di forum Gradle. Saya menambahkan yang berikut ini ke
build.gradle
file saya :Ini memberi tahu Gradle untuk mencari sumber daya dalam
src
folder, dan memintanya untuk hanya menyertakan file PNG.EDIT: Berhati-hatilah jika Anda menggunakan Eclipse, ini akan merusak konfigurasi yang Anda jalankan dan Anda akan mendapatkan
main class not found
kesalahan saat mencoba menjalankan program Anda. Untuk memperbaikinya, satu-satunya solusi yang saya temukan adalah memindahkan gambar ke direktori lain,res/
misalnya, dan menyetelnya sebagaisrcDirs
penggantisrc/
.sumber
+=
operator untuk menambahkan direktori saya ke direktori yang ada: misalnyasourceSets.main.resources.srcDirs += [ "src/main/java" ]
Ketahuilah bahwa jalur di bawah src / main / resources harus cocok dengan jalur paket dari file .class Anda yang ingin mengakses sumber daya. Lihat jawaban saya di sini .
sumber