Saya mendapatkan kesalahan berikut:
Galat saat merakit WAR: atribut webxml diperlukan (atau WEB-INF / web.xml yang sudah ada jika dijalankan dalam mode pembaruan)
Saya sudah berada web.xml
di tempat yang tepatprojectname\src\main\webapp\WEB-INF\web.xml
Apa yang menyebabkan ini?
Jawaban:
Akan sangat membantu jika Anda dapat memberikan potongan kode maven-war-plugin Anda. Sepertinya
web.xml
ada di tempat yang tepat, Anda masih dapat mencoba dan memberikan lokasi secara eksplisitsumber
Solusi ini berfungsi untuk saya (saya menggunakan 2.2 sebelumnya). Juga, saya menggunakan Konfigurasi Berbasis Java untuk Servlet 3.0 dan tidak perlu memiliki file web.xml.
sumber
false
. Jadi,<plugin> <artifactId>maven-war-plugin</artifactId> <version>3.2.3</version> </plugin>
sudah cukup.Ini bekerja dengan baik untuk saya juga.
sumber
Ini karena Anda belum memasukkan web.xml dalam proyek web Anda dan mencoba membangun perang menggunakan pakar. Untuk mengatasi kesalahan ini, Anda perlu mengatur failOnMissingWebXml ke false di file pom.xml.
Sebagai contoh:
Silakan lihat blog untuk detail lebih lanjut: https://ankurjain26.blogspot.in/2017/05/error-assembling-war-webxml-attribute.html
sumber
Jika Anda bermigrasi dari konfigurasi berbasis XML ke berbasis Java dan Anda telah menghapus kebutuhan untuk web.xml dengan menerapkan WebApplicationInitializer, cukup hapus persyaratan untuk file web.xml yang akan hadir.
sumber
Nilai tag webXml saya diperlukan agar terlihat seperti ini agar berfungsi:
sumber
<warSourceDirectory>\src\main\webapp</warSourceDirectory>
tidak bekerja! Tidak dalam v2.6Saya memiliki masalah yang sama persis dan saya menyelesaikannya seperti ini:
Buat folder baru dengan nama di
WEB-INF
bawahsrc/main/webbapp
ituKlik kanan pada Anda Proyek -> Java EE Tools -> Generate Deployment Descriptor Desubtor
Ini seharusnya menghasilkan
web.xml
Saya harap ini membantu dengan memecahkan masalah Anda: D
sumber
Memang terlihat seperti Anda memiliki web.xml di lokasi yang tepat, tetapi meskipun demikian, kesalahan ini sering disebabkan oleh struktur direktori yang tidak sesuai dengan yang diharapkan oleh Maven. Misalnya, jika Anda memulai dengan webapp Eclipse yang ingin Anda bangun dengan Maven.
Jika itu adalah masalah, perbaikan cepat adalah untuk menciptakan
src/main/java
dansrc/main/webapp
direktori (dan direktori lain jika Anda membutuhkan mereka) dan hanya memindahkan file Anda.Berikut ini adalah ikhtisar tata letak direktori maven: http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
sumber
Jika Anda mengubah jalur proyek default, Anda harus menentukan lokasi file web.xml, misalnya:
sumber
Sesuai dokumentasi, dikatakan: Apakah gagal membangun atau tidak jika file web.xml hilang. Setel ke false jika Anda ingin WAR dibangun tanpa file web.xml. Ini mungkin berguna jika Anda membangun overlay yang tidak memiliki file web.xml. Nilai default adalah: true. Properti pengguna adalah: failOnMissingWebXml.
Semoga ini menjadi lebih jelas
sumber
Ini juga berhasil untuk saya.
sumber
WEB-INF\web.xml already added, skipping
. Itu aneh, ketika saya tidak menambahkan ini, saya mendapatkan kesalahan.WEB-INF\web.xml already added, skipping
mvn-war-plugin 2.3 memperbaiki ini:
sumber
Saya memiliki kesalahan yang sama pada server uji tetapi tidak di lokal. Setelah beberapa menit, saya menemukan bahwa IDE tidak disinkronkan dengan pom.xml. Inilah cara saya mengatasinya:
Menghasilkan kembali deskriptor penyebaran dengan Eclipse
Hasilkan kembali deskriptor penyebaran dengan IntelliJ
sumber
Pastikan pom.xml ditempatkan dengan benar di folder Project. dan tidak di dalam folder target atau di mana pun.
Sepertinya pom.xml relatif tidak selaras.
sumber
Apakah struktur folder Anda diubah sehingga file tidak lagi di /src/main/webapp/WEB-INF/web.xml ?
Untuk mengatasi masalah ini, saya memberi folder web saya nama webapp dan meletakkannya di dalam src / main. Maven tampaknya mencari web.xml secara default di /src/main/webapp/WEB-INF/web.xml . Jika Anda melakukan ini, maka Anda tidak perlu memberi tahu secara eksplisit kepada maven di mana web.xml berada. Dan jika Anda telah mengubah struktur folder dan bangunan Anda baru-baru ini berhenti berfungsi, ini bisa menjadi alasannya.
Catatan: Ini adalah posting lama tetapi solusi yang diposting tidak menunjukkan mengapa build kerja tiba-tiba berhenti bekerja.
sumber
Ada banyak jawaban dan sebagian besar akan bekerja, tetapi saya akan menambahkan satu poin lagi, yang, saya pikir, tidak kalah pentingnya.
Menurut pesan log Anda, Anda menggunakan
maven
. Maven adalah alat membangun manajemen proyek yang didasarkan pada beberapa konvensi. Itu membangun proyek, membuat struktur direktori yang tepat dan menempatkan file ke direktori yang sesuai yang sesuai untukSun Microsystems Directory Structure Standard
aplikasi Java EE / Web.Anda dapat memasukkan banyak hal, termasuk plugin pakar, mengubah / mengkonfigurasi ulang direktori root proyek, dll., Tetapi ada satu langkah sederhana yang dapat Anda lakukan dan proyek Anda harus baik-baik saja. Cukup letakkan kaki Anda di
web.xml
bawahsrc\main\webapp\WEB-INF\
dan coba untuk membangun proyek denganmvn package
.Saya harap ini menambah sedikit lebih banyak cahaya untuk masalah ini.
sumber
Kesalahan ini terjadi karena Anda memberi tahu Maven untuk mengirim file ke perang .
Apakah Anda benar-benar membutuhkan perang? Jika tidak, masukkan toples ke sana. Ini kode lengkapnya:
sumber
🔴 failOnMissingWebXml sejak 2020
Semua jawaban lain tentang mungkin usang karena nilai default yang digunakan oleh maven-war-plugin berubah :
Jadi HANYA yang harus Anda lakukan adalah menambahkan
Contoh:
sumber