Pessoal, estou aprendendo a usar o maven2 e estou parado num teste que fiz
Quero testar o uso de dependencia de um outro projeto criado por mim.
Fiz o seguinte:
- Criei o projeto DependencyTest que tem apenas a classe SimpleBusiness com o metedo getString
- Coloquei este projeto no repositório local
- Adicionei o DependencyTest no pom.xml do projeto que irá usar esta dependência
Porém quando dou um Update dependences no eclipse ele não joga o .jar do DependencyTest para o diretótio WEB-INF/lib
joga apenas naquele target/MyProject/WEB-INF/lib
Resultado, qdo quero usar a Classe SimpleBusiness o eclipse nem encontra, pois não está no web-inf
O que será que faltou eu fazer para a lib ser jogada no /lib ???
Coloca o pom.xml do projeto de teste e o pom.xml do projeto que irá usar a dependencia ai.
se ele soh ta colocando na pasta target deve ser pq vc especificou a dependencia com runtime
coloca ela como compile e seja feliz ^^
Ok, segue os 2 pom.xml
Projeto: DependencyTest
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.dependency</groupId>
<artifactId>DependencyTest</artifactId>
<version>0.0.1</version>
</project>
Projeto: Project
[code]
4.0.0
br.com.project
PaggoMaven
0.0.1
war
First Maven Project
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jboss-maven-plugin</artifactId>
<version>1.4</version>
<configuration>
<jbossHome>C:\jboss-4.2.3.GA</jbossHome>
<serverName>default</serverName>
<fileName>target/${project.artifactId}.war</fileName>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.2.7.ga</version>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.11</version>
<type>jar</type>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>br.com.dependency</groupId>
<artifactId>DependencyTest</artifactId>
<version>0.0.1</version>
</dependency>
</dependencies>
[/code]
Eu já tentei colocar esta dependencia como compile, provided, system, import
mas não mesmo assim o .jar não vai pro /lib e assim não consigo encontrar a classe…
O curioso é que o driver do mysql tb não vai pro /lib mas funciona qdo rodo no jboss
Cara tenta executar o seguinte comando sobre o projeto
mvn eclipse:eclipse -Dwtpversion=1.0
Ele vai gerar o projeto do eclipse colocando o jar nas dependencias, porém não jogará na web-inf\lib por não haver necessidade em desenvolvimento.
Ele só irá colocar no web-inf\lib quando gerar o pacote (dependendo do esquema que vc usar)
Então realmente está confuso, pois depois de empacotado o arquivo é colocado no WEB-INF/lib
Mas o problema é que eu não posso usar a classe SimpleBusiness que está dentro da dependencia
Se eu usá-la no código, o eclipse já diz que não existe e nem deixa empacotar
ele só deixa empacotar essa lib qdo eu não a classe constante nela em nenhuma parte do código
Deve ter algum detalhe que realmente não sei o que pode ser
talvez eu deva colocar algum plugin do maven no pom.xml???
Então se você executar o comando que eu te passei o maven vai gerar o projeto do eclipse com as libs lá dentro
entendi cara,
então assim deve ficar legal
é que pensei que fazendo um Run as/build ou install ou um Maven/update dependencies ele já faria isso
sinal que esse plugin do eclipse não faz tudo então
vou testar isso hoje a noite então, depois falo no que deu
abraços
Você deve estar falando do plugin de maven para o eclipse, bom ai não sei como ele funciona nunca usei, e te digo mais, acho que não é necessário mesmo.
Cara, deu certo… agora eu consigo programar com a classe do projeto da dependencia
mas está me gerando outro erro
toda vez que rodo o comando mvn eclipse:eclipse -Dwtpversion=1.0
aparece o erro no projeto:
Java compiler level does not match the version of the installed Java project facet.
Daí eu altero o Java Facets pra 6.0 mas qdo rodo esse comando, volta pra 1.4 e fica com erro
até mais
tenta por isso no seu codigo:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
é cara, deu certo =]
preciso ler depois sobre esse plugin
mas presumo que diz qual a versão do java que deve usar para compilar o projeto, certo?
valeeu