Eu estou recebendo o seguinte erro:
Erro ao montar o atributo WAR: webxml é necessário (ou WEB-INF / web.xml pré-existente se estiver sendo executado no modo de atualização)
Eu cheguei web.xml
no lugar certo, que éprojectname\src\main\webapp\WEB-INF\web.xml
O que poderia estar causando isso?
Respostas:
Seria útil se você pudesse fornecer um trecho de código do seu plugin maven-war-plugin. Parece que
web.xml
está no lugar certo, mas você pode tentar fornecer o local explicitamentefonte
Esta solução funciona para mim (eu estava usando o 2.2 antes). Além disso, estou usando a configuração baseada em Java para o Servlet 3.0 e não preciso ter o arquivo web.xml.
fonte
false
. Então,<plugin> <artifactId>maven-war-plugin</artifactId> <version>3.2.3</version> </plugin>
deve ser suficiente.Funciona perfeitamente para mim também.
fonte
Isso ocorre porque você não incluiu o web.xml no seu projeto da web e tentou criar guerra usando o maven. Para resolver esse erro, é necessário definir o failOnMissingWebXml como false no arquivo pom.xml.
Por exemplo:
Consulte o blog para obter mais detalhes: https://ankurjain26.blogspot.in/2017/05/error-assembling-war-webxml-attribute.html
fonte
Se você estiver migrando da configuração baseada em XML para Java e tiver removido a necessidade de web.xml implementando o WebApplicationInitializer, basta remover o requisito de presença do arquivo web.xml.
fonte
O valor da minha tag webXml precisava ficar assim para funcionar:
fonte
<warSourceDirectory>\src\main\webapp</warSourceDirectory>
não funciona! Não na v2.6Eu tive exatamente o mesmo problema e resolvi-o assim:
Faça uma nova pasta chamada
WEB-INF
emsrc/main/webbapp
seguida,Clique com o botão direito do mouse em seu Projeto -> Ferramentas Java EE -> Gerar Stub do Descritor de Implementação
Isso deve gerar seu
web.xml
Espero que isso ajude resolvendo seu problema: D
fonte
Parece que você tem o web.xml no local certo, mas mesmo assim, esse erro geralmente é causado pela estrutura de diretórios que não corresponde ao que o Maven espera ver. Por exemplo, se você iniciar com um aplicativo da web Eclipse que estiver tentando construir com o Maven.
Se for esse o problema, uma solução rápida é criar um
src/main/java
e umsrc/main/webapp
diretório (e outros diretórios se você precisar deles) e apenas mover seus arquivos.Aqui está uma visão geral do layout do diretório maven: http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
fonte
Se você alterar o caminho do projeto padrão, deverá especificar o local do arquivo web.xml, por exemplo:
fonte
Conforme a documentação, ele diz: Se falhará ou não na compilação se o arquivo web.xml estiver ausente. Configure como false se desejar que o WAR seja construído sem um arquivo web.xml. Isso pode ser útil se você estiver criando uma sobreposição que não possui arquivo web.xml. O valor padrão é: true. A propriedade do usuário é: failOnMissingWebXml.
Espero que fique mais claro
fonte
Também funcionou para mim.
fonte
WEB-INF\web.xml already added, skipping
. É estranho, quando não adiciono isso, recebi o erro.WEB-INF\web.xml already added, skipping
O mvn-war-plugin 2.3 corrige isso:
fonte
Eu tive o mesmo erro no servidor de teste, mas não no local. Após alguns minutos, descobri que o IDE não estava sincronizado com o pom.xml. Aqui está como eu resolvo isso:
Gere novamente o descritor de implementação com o Eclipse
Gere novamente o descritor de implantação com o IntelliJ
fonte
Verifique se o pom.xml está colocado corretamente na pasta Projeto. e não dentro da pasta de destino ou em qualquer outro lugar.
Parece que pom.xml não está relativamente alinhado.
fonte
Sua estrutura de pastas foi alterada para que o arquivo não esteja mais em /src/main/webapp/WEB-INF/web.xml ?
Para resolver esse problema, dei à minha pasta da web o nome webapp e coloquei dentro do src / main. O Maven parece procurar por web.xml por padrão em /src/main/webapp/WEB-INF/web.xml . Se você fizer isso, não precisará informar explicitamente ao maven onde está o web.xml. E se você alterou sua estrutura de pastas e sua compilação parou de funcionar recentemente, talvez seja por isso.
Nota: Esta é uma postagem antiga, mas as soluções publicadas não apontam por que uma construção em funcionamento para de funcionar repentinamente.
fonte
Existem muitas respostas e a maioria delas funcionará, mas vou acrescentar mais um ponto que, penso eu, não tem menos importância.
De acordo com a sua mensagem de log, você está usando
maven
. O Maven é uma ferramenta de criação de gerenciamento de projetos, baseada em algumas convenções. Ele cria o projeto, cria uma estrutura de diretórios adequada e coloca os arquivos nos diretórios correspondentes, compatíveis comSun Microsystems Directory Structure Standard
aplicativos Java EE / Web.Você pode incorporar muitas coisas, incluindo plugins maven, alterando / reconfigurando o diretório raiz do projeto, etc., mas há uma etapa simples que você pode executar e seu projeto deve estar bem. Basta colocar o seu
web.xml
undersrc\main\webapp\WEB-INF\
e tentar construir o projeto commvn package
.Espero que isso adicione um pouco mais de luz a esse problema.
fonte
Este erro ocorre porque você diz ao Maven para pakage os arquivos para a guerra .
Você realmente precisa de guerra? Caso contrário, coloque o frasco lá. Aqui está o código completo:
fonte
🔴 failOnMissingWebXml desde 2020
Todas as outras respostas sobre podem estar obsoletas porque o valor padrão usado pelo maven-war-plugin mudou :
Então, a única coisa que você precisa fazer é adicionar
Exemplo:
fonte