Maven - não empacotar os jars do lib

7 respostas
A

Boa tarde.
Estou utilizando o maven como solução para deploy para projetos web. Com o maven é possível definir as dependências do projeto, dessa forma não é necessário por as bibliotecas dentro da pasta “lib”.
Porém se adicionar qualquer biblioteca dentro da pasta lib da aplicação esses jar serão empacotados da mesma forma. Como posso fazer para o maven não empacotar essas bibliotecas da pasta lib? desta forma obrigo todos a usarem jars pelo pom.

Valeu ae!!

7 Respostas

F

ao incluir o jar importado usa:
<scope>provided</scope>

Ex:

&lt;dependency&gt; &lt;groupId&gt;group-a&lt;/groupId&gt; &lt;artifactId&gt;artifact-b&lt;/artifactId&gt; &lt;version&gt;1.0&lt;/version&gt; &lt;type&gt;bar&lt;/type&gt; &lt;scope&gt;provided&lt;/scope&gt; &lt;/dependency&gt;

A

opa.
Então… a questão não é usar o jar como provido pelo servidor de aplicação e sim bloquear as bibliotecas que estão dentro do “lib” da aplicação.
evitar que outra pessoa insira a biblioteca blá-blá.jar dentro do lib e o maven empacotar tanto as jars de dependências encontradas no pom como também essa biblioteca blá-blá.jar que é encontrada dentro do diretório “lib”

Valeuuuu ae fbeli!!

A

fbeli:
ao incluir o jar importado usa:
<scope>provided</scope>

Ex:

&lt;dependency&gt; &lt;groupId&gt;group-a&lt;/groupId&gt; &lt;artifactId&gt;artifact-b&lt;/artifactId&gt; &lt;version&gt;1.0&lt;/version&gt; &lt;type&gt;bar&lt;/type&gt; &lt;scope&gt;provided&lt;/scope&gt; &lt;/dependency&gt;

opa.
Então… a questão não é usar o jar como provido pelo servidor de aplicação e sim bloquear as bibliotecas que estão dentro do “lib” da aplicação.
evitar que outra pessoa insira a biblioteca blá-blá.jar dentro do lib e o maven empacotar tanto as jars de dependências encontradas no pom como também essa biblioteca blá-blá.jar que é encontrada dentro do diretório “lib”

Valeuuuu ae fbeli!!

A

Alguém teria uma idéia??
pelo que estou lendo se existir alguma forma devo por isso dentro do “settings.xml” do próprio maven e alterando a forma que o plugin do maven copia os arquivos para fazer deploy, excluindo os arquivos da pasta “lib”.
alguém já precisou fazer isso??
valeuu

A

bem… pra informações…

Adicionando essas configurações no pom, a pasta lib da sua aplicação não será empacotada…

<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-war-plugin</artifactId>
			<version>2.1-alpha-1</version>
			<configuration>
				<warSourceExcludes>WEB-INF/lib/*.jar</warSourceExcludes>
			</configuration>
		</plugin>

valeu

C

Pessoal, com a dica de Apolo_Giu consegui excluir alguns artefatos da pasta lib. Isso realmente foi necessário, pois os mesmos já se encontram no servidor jboss. Segue trecho:

<build>
 	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-war-plugin</artifactId>
			<version>2.1-alpha-1</version>
			<configuration>
				<warSourceExcludes>WEB-INF/lib/ejb3-persistence.jar,WEB-INF/lib/servlet-api.jar,WEB-INF/lib/mail.jar,WEB-INF/lib/hibernate-3.2.6.ga.jar,
					WEB-INF/lib/hibernate-annotations-3.3.1.GA.jar,WEB-INF/lib/hibernate-commons-annotations-3.0.0.ga.jar,WEB-INF/lib/hibernate-entitymanager-3.3.2.GA.jar</warSourceExcludes>				
			</configuration>
		</plugin>
	</plugins>
  </build>
A

opa!
não sei se esse é o caso mass…
caso vc tenha jars que já estão no seu servidor de aplicações você pode usar o seguinte…:

org.jboss.as jboss-as-ejb3 7.0.1.Final provided

assim vc diz que a biblioteca já está provida pelo servidor de aplicações…
isso ae!!

Criado 1 de setembro de 2010
Ultima resposta 24 de abr. de 2012
Respostas 7
Participantes 3