Fala pessoal, boa noite.
Irei demonstrar como gerar uma lib apenas para utilização em mais de um projeto. Por exemplo, se você tem um projeto web e um desktop, sendo que estes utilizam as mesmas libs e até mesmo implementam classes modelo e “managed beans” contendo as mesmas regras de negócio, data access objects, ou seja, tudo que pode ser reutilizado.
Então faremos o seguinte. Criamos um projeto de biblioteca. Novo Projeto -> Java -> Biblioteca para classe Java.
No projeto, em biblioteca, adicione as libs necessárias. Crie normalmente também as classes modelo, os managed Beans, os Data Access Objects, sendo que o contexto seja compatível com ambas as arquiteturas.
Com isso a camada de visão e algo particular para ambas as arquiteturas serão implementadas nestas.
Agora vá no arquivo build.xml e deixe-o similar à configuração abaixo:
<!-- Nome do projeto teste, basedir = raiz, nome da ação = executar -->
<project name="teste" basedir="." default="executar">
<property name="classes" location="classes"/>
<target name="dir">
<mkdir dir="classes" />
</target>
<!-- Nome da opção no menu de contexto = limpar, remove as classes compiladas -->
<target name="limpar">
<delete dir="classes"/>
</target>
<!-- Nome da opção no menu de contexto = compilar -->
<target name="compilar" depends="dir">
<javac srcdir="${basedir}"
classpath="${classes}"
destdir="${classes}" />
</target>
<!-- Nome da opção no menu de contexto = empacotar para gerar o jar único -->
<target name="empacotar" depends="compilar">
<!-- Caminho contendo as bibliotecas para empacotar -->
<mkdir dir="build/jar"/>
<!-- Caminho para gerar a biblioteca empacotada e o nome do jar -->
<jar destfile="build/jar/Empresa.jar"
<!-- Incluir também as classes compiladas -->
basedir="${basedir}/classes">
<manifest>
<!-- Nome da classe principal -->
<attribute name="Main-Class" value="Empresa"/>
</manifest>
</jar>
</target>
<!-- Nome da opção no menu de contexto = executar, executa o jar compilado -->
<target name="executar" depends="empacotar, limpar">
<java jar="build/jar/Empresa.jar" fork="true"/>
</target>
</project>
Com isso, ao clicar com o botão direito sob o arquivo build.xml, este lhe fornecerá as opções mencionadas acima, gerando um único jar, para ser acoplado ao sistema desejado.
Isso me ajudou muito ao desenvolver um sistema web e mobile que utilizavam as mesmas regras de negócio e posteriormente acessavam webservices.
Espero ter ajudado,
Abs,
Lessandro