Duvidas Maven - java WEB

Boa noite, hj resolvi começar a estudar o maven ( dps de perder 2 dias resolvendo erros de compatibilidade nos jars :frowning: ) parece ser uma ótima ferramenta porém por ser iniciante tanto em java web quanto no maven to travado em algumas partes

1- Nos projetos web q fiz sem o maven sempre usava o “dynamic web project” onde a paste “WebContent” armazenava toda a parte de view e as configurações XML ( web.xml por exemplo ), pelo q entendi em um projeto maven a pasta “webapps” faz é responsavel por isso. devo “copiar” os XML’s q ficavam em webcontent para essa nova pasta diretamente ? ou o maven faz isso de outra forma ?

2- Para desenvolver um projeto web com o maven devo usar a estrutura de projeto padrao ( criado pelo eclipse na opção “maven project” ) ou devo configurar de alguma forma especifica para web ? vi em alguns sites formas de usar o maven com a estrutura de um dynamic web project, mas aí nao sei se essa seria a melhor forma de desenvolver.

3- Vi em alguns sites que da pra configurar o spring e o hibernate dentro de classes em projeto maven no lugar de XML’s, isso é só uma opção ou o maven obrigatoriamente tem que ser configurando em classes ? se for opcional, qual das duas formas é mais vantajosa ?

sei que é um post grande e com muitas duvidas, mas agradeço se puderem ajudar.

1 - A estrutura de um projeto maven, devido às necessidades do mesmo em manter uma estrutura conhecida e clara para compilação e geração do artefato é bastante específica e peculiar, basicamente, temos:

Projeto
| - src
|---- main
|---- main/java
|---- main/resources
|---- main/webapp
|---- main/webapp/WEB-INF
|---- main/webapp/META-INF
|---- test/java
|---- test/resources

Onde src/main/webapp é a estrutura onde você vai inserir seus elementos da view (htmls, css, js, imagens, etc).
Assim sendo, tudo o que ia no WebContent vai para o webapp, seguindo a hierarquia de pastas.

2 - Eu prefiro criar um projeto básico (New project -> maven project -> marco a opção skip archetype selection -> preencho groupId e artifactId -> altero o packaging do projeto de acordo com a necessidade, em geral, war para projeto web -> finish
E altero as configurações no project facets e no próprio pom.xml

3 - Essa configuração programática pode ser feita sem ser em projetos maven. Eu não gosto dessa abordagem.

1 curtida