Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
projekt
- Quellpacket
- Packet1 (mit main)
- Packet2 (mit main)
- Packet3 (mit Klassen die von Packet1 und Packet2 verwendet werden)
nun möchte ich jeweils aus Packet1 und Packet2 (natürlich mit den Klassen aus Packet3) eine .jar Datei erstellen. Bekomms aber nur so hin das das ganze Projekt erstellt wird.
wüsste ich jetzt nicht wie das bei Netbeans geht (und habe auch nichts unter den Projekt-Einstellungen gefunden). Aber ich hätte aus deinen 3 Paketen 3 Projekte erstellt. Dann hätteste ganz einfach 3 Jar-Files und die Packet3 hätte ich als lib Packet1 und Packet2 gegeben...(nur so ein Tipp für die Zukunft)
Wenn das nur in einem Projekt ist musst du die build.xml anpassen. Ich glaube Netbeans verwendet standardmäßig ANT. Von daher sollte das nicht so schwer sein.
projekt
- Quellpacket
- Packet1 (mit main)
- Packet2 (mit main)
- Packet3 (mit Klassen die von Packet1 und Packet2 verwendet werden)
nun möchte ich jeweils aus Packet1 und Packet2 (natürlich mit den Klassen aus Packet3) eine .jar Datei erstellen. Bekomms aber nur so hin das das ganze Projekt erstellt wird.
Wenn ich mit Bibliotheken arbeite (die ich aus einer .jar Datei erstelle), so wie von Tomate beschrieben, muss ich doch immer wenn ich was in den Klassen ändern will eine neue .jar erstellen und wieder neu als Bibliothek einbinden. Oder??
Wie kann ich die Klassen aus einem Projekt in ein anderes Importieren??
Schon hast du in dist 3 jars... kannst du natürlich beliebig erweitern. Das target hier überschreibt das Netbeans eigene, aber da sist ja auch so gedacht.... siehe auch die Kommentare in der build.xml und build-impl.xml
Wenn du es noch verschönern willst, z.B. die Namen der JAR files aus properties lesen guck die mal die project.properties an. Da kannst du eine ganze Menge customizieren.
Ansonsten wenn du es jetzt in drei Projekte aufteilen willst musst du in jedem Projekt alle abhängigen libs hinzufügen. Klassen in anden Projekten kannst du einbinden über:
oder du machst es so wie ich: ich entwickle in Eclipse die Logik und in Netbeans die GUI. Aus Eclipse exportiere ich das ganze als JAR in den Ordner lib (welcher im Projekt-ordner in Netbeans liegt). Ich sage einmal, er soll mir das JAR-File einbinden und wenn ich Änderungen in Eclipse mache, sind die auch sofort in Netbeans wirksam.
Die wird von Netbeans mit hilfe von Ant abgearbeitet, die build.xml ist also quasi wie ein MAKEFILE bei C.
NetBeans hat für jedes Project zwei davon:
build.xml
nbproject/build-impl.xml
die im nbproject folder solltest du NICHT anfassen. In der build.xml in dem Project folder kannst du Settings und tasks mit deinen eigenen Definitionen überschreiben.
Wenn du den code den ich oben geposted habe in die build.xml ans ende einträgst und clean & build machst hast du nacher 3 eigene Jars.
Du musst evtl halt einige Kleinigkeiten anpassen, z.B. wie die packages heißen. Versuch mal mein Script zu verstehen.
Mit Ant kann man eine ganze Menge netter Dinge machen. Kompilieren und in Jars packen ist da nur ein Teil von. Ist halt eine konkurierendes Build Environment zu Maven.
Gibt aber noch zwei schachen die ich nicht hinbekomm. Zum einen wird immer noch das ganze project erstellt (mit Projektnamen aus Netbeans). Zum andern bekomm ich die includes nicht so hin das nur die gemeinsam genuzten Klassen mitgenommen werden. (im Beispiel oben Packet3)
du musst bei den includes und excludes halt Verzeichnisspfade angeben.
includes="com/my/package/package1/*.class"
Würde so all Classes in com.my.package.package1 reinpacken. Packages sind ja nichts anderes als eine Folderhierachie.
Wenn du hier noch hilfe brauchst müssest du mal deine Package Struktur posten.
Das das ganze Project mitgebaut wird ist doch nicht weiter wild, oder? Kann man aber auch rausnehmen indem du noch die anderen Jartargets überschreibst:
In die build.xml muss noch rein:
[XML]
<target name="-do-jar-without-manifest">
<echo message="skip -do-jar-without-manifest"/>
</target>
<target name="-do-jar-with-mainclass">
<echo message="skip -do-jar-with-mainclass"/>
</target>
<target name="-do-jar-with-libraries">
<echo message="skip -do-jar-with-libraries"/>
</target>
[/XML]
Wenn du noch Fragen zum Ant build hast, nur los. Man kann damit viele schöne Dinge machen und da Netbeans das schon direkt eingebaut hat ist das echt angenehm. Gut in Eclipse auch nur ein Klick, aber da muss man von scratch mit der build.xml anfangen...