Tenho um projeto (graças a Deus funcionando) para o qual hoje utilizo o Ant para o deploy. Gostaria de migrar essa estrutura para o Maven.
Enfim…na montagem do arquivo pom.xml, duas dúvidas surgiram:
1 -> No projeto do Eclipse, as dependencias adicionadas são as do Maven e as libs do servidor de aplicação. Quando o Maven compilar o código, essas libs do Tomcat (no caso) serão incluídas magicamente no classpath, ou tambem é necessário referencia-las no pom.xml? Se sim…como faze-lo, da maneira “normal”?
2 -> Alguns jars que necessito não tem o número da versão no repositório. Nese caso, eu devo omitir o dessa dependência?Se sim, qual versão do repositório será baixada?
1- se eu entendi bem vc quer saber como o maven coloca as libs no local correto. Se for isso, nao se preocupe, ele joga as libs para a pasta webinf/lib no servidor. O maven pode ate compilar suas classes, mas quem faz esse papel mesmo eh sua IDE ( Eclipse, Netbeans… ). O maven automatiza o processo de build. Ao incluir as libs no pom, vc ta dizendo pra ele assim: maven, baixe essas libs pra mim e coloque no meu classpath. Essas libs serao baixadas para seu repositorio local e referenciadas em seu projeto. Sua IDE deve estar corretamente configurada pra isso funcionar bem. Eu uso um plugin do maven que vc pode achar no Eclipse pela ajuda->market place la. Estude o ciclo do maven ! Tem um plugin do maven pro tomcat q agiliza tanto isso q para rodar o tomcat vc nem precisa mais ter o tomcat instalado na maquina, nem configurado no eclipse, o maven ja faz tudo. Da uma pesquisada…
2- Vc deve especificar a versao do jar em algum lugar para dizer ao maven qual versao baixar. Se vc nao colcar essa versao seu projeto nao vai nem compilar. Se nao sabe a versao, procure nos repositorios do maven ou na qual a lib se encontra e coloque-a no pom.
A
alias
Primeiramente obrigado.
Na verdade, eu creio ter compreendido o processo do Maven (alias eu já tinha usado o Maven, mas em empresas em que recebi o ambiente todo pronto e parametrizado, agora sou eu que estou montando tudo :lol: ). Mas veja a dúvida: supondo que eu use a classe HttpServlet em algum momento no meu código. Entendo que o Eclipse VAI compilar isso, pois eu tenho adicionado no classpath do Eclipse os jars do Tomcat. Ok. O Maven vai enxergar isso, ou preciso adicionar tambem esses jars como dependência no pom? Afinal, elas sao dependencias… que em tempo de execução são servidas pelo Tomcat (no caso).
Hm, sobre a versão devo ter feito besteira…o jar em questão é o jbpm-jpdl.jar, e o Maven diz que nao consegue encontra-lo no repositório com aquela versão. De qualquer forma vou assumir que preenchi algo errado e a tag é obrigatória. Correto?
Obrigado, amigos.
M
muldon
Nao é necessario vc colocar o jar em pasta alguma quando se esta trabalhando com o Maven, pois ele já faz isso. Por isso eu te falei da questao da configuracao no Eclipse. O plugin do maven no Eclipse faz com que seu projeto enchergue esses jars. Mas de onde entao vem os jars ? = do que vc declarou no pom. Ao editar seu pom, o maven já esta automaticamente baixando as libs pro seu repositorio local e adicionando no classpath do seu projeto.
a tag version é obrigatória. Seja ela no pom pai ou no filho. Veja se essa lib lhe atende…
A
alias
Então, meu velho, mas me perdoe a burrice pois a dúvida persiste :lol: …no exemplo que dei do uso da classe HttpServlet, eu não preciso de nada no WEB-INF\lib para fazer isso funcionar. Pois o projeto do Eclipse enxerga os jars do Tomcat, no caso o jar servlet-api.jar. Esse jar está na pasta lib do Tomcat, não no meu WEB-INF\lib, e o Eclipse entende isso. Mas o Maven vai compilar o código, correto? Se vai compilar, vou precisar desse jar no classpath nesse momento. É necessário ter essa dependência declarada no pom.xml?
A proposito já configurei tudo no Tomcat e o projeto está enxergando as libs do Maven, como voce disse. Minha dúvida é se essas dependências que são fornecidas pelo servidor precisam estar no arquivo do Maven tambem.
Sobre o jar, obrigado…eu estava usando o errado mesmo. :oops:
M
muldon
nesse caso declare a dependencia como provided, da seguinte forma:
ex:
assim vc fala pro maven que a dependencia nao sera inclusa no deploy, pois ela já sera fornecida pela container, mas sera util para a compilacao do projeto.
A
alias
muldon:
nesse caso declare a dependencia como provided, da seguinte forma:
ex:
assim vc fala pro maven que a dependencia nao sera inclusa no deploy, pois ela já sera fornecida pela container, mas sera util para a compilacao do projeto.
Ah…entendi, era esse mesmo o ponto. Valeu, muldon, obrigado.