I have a Java Application in NetBeans 7.1 (let's call it myApp) that depends on a Java Class-Library Project [more than one, actually] where I keep some utility-classes I share among projects.
This Class-Library Project (let's call it myLib) depends on [many] third party libraries (e.g. apache-commons-younameit.jar).
I included myLib as a library, and NetBeans' Ant script pulls myLib.jar in the dist/lib
directory of my myApp project; however, the jars upon which myLib depends are not pulled in together with myLib, so my project gets runtime exceptions due to the missing apache-commons-youtnameit.jar.
I would like to have both myLib.jar and apache-commons-younameit.jar automatically pulled into myApp's dist/lib
folder, so that I don't have to manually check all of my libraries' dependencies and add them to my main project.
What I'd like to avoid is the following:
Thank you in advance for any help, or for pointing me in the right direction.
I found a way to copy "dependant libraries' dependant libraries" as you said in one of the comments. Hopefully this helps.
Add the following code to your NetBean project's build.xml file, after the <import file="nbproject/build-impl.xml"/>
line. You will need to fill out a proper relative path in the <fileset>
tags below.
<!--Copy over any "dependant libraries' dependant libraries" -->
<target name="-post-jar">
<echo>Copying over extra jars into PROJECTNAME</echo>
<copy todir="./dist/lib">
<!-- put in order from least important to most important to prevent file overwrites -->
<fileset dir="path-to-other-nb-project/dist/lib"></fileset>
<fileset dir="path-to-second-nb-project/dist/lib"></fileset>
</copy>
</target>
Not the cleanest code, but it solved the problem for me. You'll need to manually update this as you add extra dependant projects to your main project.