[DUVIDA] Criando Jar com ANT

4 respostas
R

Pessoal estou tentando montar um jar usando ANT … só que não estou conseguindo levar junto com o jar as dependencias que o mesmo precisa por exemplo em uma classe estou usando a lib commons-lang-2.4 … só que quando o script do ANT faz o jar ele nao esta levando junto as classes referentes a essa lib ai qdo vou usar o jar criado da erro falando q X classe nao existe. Alguem pode me ajudar ?

abaixo segue o trecho q faz o arquivo JAR

<target name="jarFile" description="monta o jar do projeto" depends="clean,compile"> <delete file="${outputdeploy.dir}/gmpvalidator.jar"/> <jar destfile="${outputdeploy.dir}/gmpvalidator.jar" basedir="${output.dir}"/> </target>

[]'s

Renan

4 Respostas

T

Na verdade você só informa ao ANT as libs que você quer colocar no Classpath para ele poder compilar e gerar o JAR, ele não copia as classes da Lib para o seu projeto!!!

R

Thiago,

E como eu faço para adicionar as libs no classpath e o ant conseguir buscar e gerar o JAR corretamente?

L

Estou procurando algo parecido.
Pelo Eclipse temos a opção de exportar para um Runnable JAR File, assim os jars dependencias são “descompactados” para dentro do jar principal, assim teremos a estrutura dos pacotes.

Alguem sabe como gerar isso por script no Ant?

F

luiscolling:
Estou procurando algo parecido.
Pelo Eclipse temos a opção de exportar para um Runnable JAR File, assim os jars dependencias são “descompactados” para dentro do jar principal, assim teremos a estrutura dos pacotes.

Alguem sabe como gerar isso por script no Ant?

Ae Ilseu

Sei que tu ja deve ter descoberto, mas eu nao gosto de deixar topicos em aberto

<?xml version="1.0" encoding="UTF-8"?>
<project name="Commons" basedir="." default="dist">
	
	<property name="appName" value="Commons"/>
	<property name="user.name" value="Felipe Flores"/>
	<property name="src" value="src" />  
    <property name="build" value="build/classes" />  
    <property name="dist" value="dist" />  

	<fileset id="myFileSet" dir="../Libraries/libs">
		<include name="hibernate3.jar"/>
		<include name="servlet-api.jar"/>
		<include name="javax.faces*.jar"/>
	</fileset>
	
	<path id="compile.classpath.commons">
		<fileset refid="myFileSet"/>
	</path>
	
	<manifestclasspath property="lib.list" jarfile="${dist}/${appName}.jar">
	    <classpath refid="compile.classpath.commons"/>
	</manifestclasspath>

	<target name="compile" depends="init">
		<echo message="Compilando Entities"/>
	    <javac destdir="${build}" debug="true" srcdir="${src}">
	        <classpath refid="compile.classpath.commons"/>
	    </javac>
		<echo message="Compilação com sucesso"/>
	</target>
	
	<target name="libs" depends="compile">
		<copy todir="${build}/lib">
			<fileset refid="myFileSet"/>
		</copy>
	</target>
		
	<target name="init">
		<echo message="Preparando para iniciar o build de ${appName}"/>
		<echo message="Criando pastas para preparar a compilação"/>
	    <mkdir dir="${build}"/>
	    <mkdir dir="${dist}" />
		<mkdir dir="${build}/lib" />
	</target>
	
	<target name="dist" depends="libs">  
		<echo> Gerando o .jar do projeto.</echo>      
	    <jar destfile="${dist}/${appName}.jar" basedir="${build}">  
	    	<manifest>
	    		<attribute name="Class-Path" value="${lib.list}"/>
    	    </manifest>
	    </jar>  
	</target>
	
</project>
Criado 29 de maio de 2009
Ultima resposta 19 de out. de 2012
Respostas 4
Participantes 4