Adicionar um projeto junto com suas respectivas bibliotecas no NetBeans 8.0
05/05/2014
0
No NetBeans 8.0 eu tenho um projeto X e um projeto Y. No projeto Y há as bibliotecas A e B. Quando eu adiciono o projeto Y nas bibliotecas do projeto X, eu tenho que adicionar as bibliotecas do projeto Y (A e B).
Existe alguma maneira que quando eu adicionar um projeto Y a um outro projeto, automaticamente as respectivas bibliotecas deste projeto Y venham junto?
Eli Barbosa
Posts
05/05/2014
Carlos Proença
se n... tentou colocar o projeto jar do Y no X?
att.
06/05/2014
Eli Barbosa
Sim, já fiz isto. Vou no projeto X, clico com o direito em "Libraries", "Add Project" e adiciono o jar do projeto Y.
O problema é que os jar das bibliotecas do projeto Y não vem junto.
Acredito que a solução seja utilizar o Maven.
06/05/2014
Carlos Proença
tenta criar o jar na mao... e depois abre ele no winrar... e ve se as libs estao dentro...
mas recomendo que rssr vc use o maven... ele automatiza tudo isso pra vc... e muito mais
att.
07/05/2014
Eli Barbosa
O Netbeans cria o jar do projeto sem as bibliotecas.
Eu achei na internet uma maneira de criar o jar do projeto junto as bibliotecas que o projeto está usando.
Primeiro tem que configurar o arquivo build.xml que está no diretório do projeto.
No final do arquivo build.xml e antes da tag <\project>
<target name="-post-jar"> <property name="store.jar.name" value="${application.title}"/> <property name="store.dir" value="store"/> <property name="store.jar" value="${store.dir}/${store.jar.name}.jar"/> <echo message="Packaging ${store.jar.name} into a single JAR at ${store.jar}"/> <delete dir="${store.dir}"/> <mkdir dir="${store.dir}"/> <jar destfile="${store.dir}/temp_final.jar" filesetmanifest="skip"> <zipgroupfileset dir="dist" includes="*.jar"/> <zipgroupfileset dir="dist/lib" includes="*.jar"/> <manifest> <attribute name="Main-Class" value="${main.class}"/> </manifest> </jar> <zip destfile="${store.jar}"> <zipfileset src="${store.dir}/temp_final.jar" excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA"/> </zip> <delete file="${store.dir}/temp_final.jar"/> </target>
Precisa marcar ”Copy Dependent Libraries” na propriedades do projeto->Build->Packaging.
Ao marcar ”Copy Dependent Libraries” o Netbeans ira copiar as dependência do projeto para o diretório "dist\lib".
Feito isto, toda vez que compilar será gerado um jar no diretório store dentro da pasta do projeto.
Mas na minha opinião isso não é uma boa prática.
Pois se eu tivesse que adicionar um outro projeto ao meu projeto X, e este outro projeto usar uma ou mais bibliotecas que por coincidência o projeto Y também usa. O meu projeto X iria ter duas bibliotecas iguais.
Exemplo:
X, Y e Z (criados por mim no Netbeans)
|----A |--Y---> | |----B | X---> | | |--Z---> A
Numa situação dessa Y tem a biblioteca A. Z também a tem. X, que adicionou Y e Z, tem dois A.
Obrigado Carlos pela atenção, vou ter que aprender o Maven para resolver este problema.
Clique aqui para fazer login e interagir na Comunidade :)