Sempre Java

agosto 21, 2010

Gerar uma lib para reutilização em projetos

Filed under: Desenvolvimento Web — Tags:, , , — semprejava @ 10:10 pm

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

Blog no WordPress.com.

Crie um site como este com o WordPress.com
Comece agora