Otrzymuję następujący błąd:
Błąd montażu WAR: wymagany jest atrybut webxml (lub istniejący WEB-INF / web.xml, jeśli jest wykonywany w trybie aktualizacji)
Mam web.xml
właściwe miejsceprojectname\src\main\webapp\WEB-INF\web.xml
Co może być tego przyczyną?
Odpowiedzi:
Przydałby się fragment kodu wtyczki maven-war. Wygląda na
web.xml
to, że jest we właściwym miejscu, ale możesz spróbować wyraźnie podać lokalizacjęźródło
To rozwiązanie działa dla mnie (wcześniej używałem 2.2). Używam również konfiguracji opartej na Javie dla Servlet 3.0 i nie muszę mieć pliku web.xml.
źródło
false
. Tak<plugin> <artifactId>maven-war-plugin</artifactId> <version>3.2.3</version> </plugin>
powinno wystarczyć.Dla mnie też działa idealnie.
źródło
Jest tak, ponieważ nie uwzględniłeś pliku web.xml w swoim projekcie internetowym i próbujesz zbudować wojnę za pomocą maven. Aby rozwiązać ten błąd, musisz ustawić failOnMissingWebXml na false w pliku pom.xml.
Na przykład:
Więcej szczegółów można znaleźć na blogu: https://ankurjain26.blogspot.in/2017/05/error-assembling-war-webxml-attribute.html
źródło
Jeśli przeprowadzasz migrację z konfiguracji opartej na języku XML do konfiguracji opartej na Javie i usunąłeś potrzebę pliku web.xml poprzez wdrożenie WebApplicationInitializer, po prostu usuń wymaganie obecności pliku web.xml.
źródło
Wartość mojego tagu webXml musiała wyglądać następująco:
źródło
<warSourceDirectory>\src\main\webapp</warSourceDirectory>
, nie działa! Nie w wersji 2.6Miałem dokładnie ten sam problem i rozwiązałem go w następujący sposób:
Utwórz nowy folder o nazwie
WEB-INF
podsrc/main/webbapp
wtedyKliknij prawym przyciskiem myszy swój projekt -> Java EE Tools -> Generuj deskryptor wdrażania Stub
To powinno wygenerować twoje
web.xml
Mam nadzieję, że pomoże to rozwiązać Twój problem: D
źródło
Wygląda na to, że plik web.xml znajduje się we właściwej lokalizacji, ale mimo to ten błąd jest często spowodowany przez niezgodność struktury katalogów z oczekiwaniami Mavena. Na przykład, jeśli zaczynasz od aplikacji internetowej Eclipse, którą próbujesz zbudować za pomocą Maven.
Jeśli to jest problem, szybkie poprawki jest stworzenie
src/main/java
orazsrc/main/webapp
katalog (i innych katalogów, jeśli ich potrzebują) i po prostu przenieść pliki.Oto przegląd układu katalogu maven: http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
źródło
Jeśli zmienisz domyślną ścieżkę projektu, musisz określić lokalizację pliku web.xml, na przykład:
źródło
Zgodnie z dokumentacją mówi: czy kompilacja zakończy się niepowodzeniem, jeśli brakuje pliku web.xml. Ustaw na fałsz, jeśli chcesz, aby WAR został zbudowany bez pliku web.xml. Może to być przydatne, jeśli budujesz nakładkę bez pliku web.xml. Wartość domyślna to: prawda. Właściwość użytkownika to: failOnMissingWebXml.
Mam nadzieję, że to wyjaśnia
źródło
Dla mnie też zadziałało.
źródło
WEB-INF\web.xml already added, skipping
. To dziwne, kiedy tego nie dodam, mam błąd.WEB-INF\web.xml already added, skipping
mvn-war-plugin 2.3 naprawia to:
źródło
Miałem ten sam błąd na serwerze testowym, ale nie w lokalnym. Po kilku minutach odkryłem, że IDE nie zostało zsynchronizowane z pom.xml. Oto jak to rozwiązać:
Ponownie wygeneruj deskryptor wdrażania za pomocą Eclipse
Ponownie wygeneruj deskryptor wdrażania za pomocą IntelliJ
źródło
Upewnij się, że plik pom.xml jest poprawnie umieszczony w folderze projektu. i nie w folderze docelowym ani w żadnym innym miejscu.
Wygląda na to, że pom.xml nie jest względnie wyrównany.
źródło
Czy struktura folderów została zmieniona, aby plik nie był już w /src/main/webapp/WEB-INF/web.xml ?
Aby rozwiązać ten problem, nadałem mojemu folderowi internetowemu nazwę webapp i umieściłem go w src / main. Wygląda na to, że Maven domyślnie szuka pliku web.xml pod adresem /src/main/webapp/WEB-INF/web.xml . Jeśli to zrobisz, nie musisz wyraźnie informować maven, gdzie jest plik web.xml. A jeśli zmieniłeś strukturę folderów i kompilacja niedawno przestała działać, może to być powód.
Uwaga: jest to stary post, ale opublikowane rozwiązania nie wskazują, dlaczego działająca kompilacja nagle przestaje działać.
źródło
Istnieje wiele odpowiedzi i większość z nich zadziała, ale dodam jeszcze jeden punkt, który, moim zdaniem, ma nie mniej ważne znaczenie.
Zgodnie z komunikatem dziennika korzystasz
maven
. Maven to narzędzie do zarządzania projektami oparte na niektórych konwencjach. Buduje projekt, tworzy odpowiednią strukturę katalogów i umieszcza pliki w odpowiednich katalogach, co jest zgodne zSun Microsystems Directory Structure Standard
aplikacjami Java EE / Web.Możesz uwzględnić wiele rzeczy, w tym wtyczki maven, zmianę / rekonfigurację katalogu głównego projektu itp., Ale jest tylko jeden prosty krok, który możesz zrobić i twój projekt powinien być w porządku. Wystarczy umieścić
web.xml
poniżejsrc\main\webapp\WEB-INF\
i spróbować zbudować projektmvn package
.Mam nadzieję, że doda to nieco więcej światła temu problemowi.
źródło
Ten błąd występuje, ponieważ każesz Mavenowi spakować pliki na wojnę .
Czy naprawdę potrzebujesz wojny? Jeśli nie, włóż tam słoik. Oto pełny kod:
źródło
🔴 failOnMissingWebXml od 2020 roku
Wszystkie pozostałe odpowiedzi mogą być nieaktualne, ponieważ zmieniła się domyślna wartość używana przez wtyczkę maven-war-plugin :
Więc tylko rzeczą, którą musisz zrobić, to dodać
Przykład:
źródło