Gebäude-GLAS mit allen seinen Abhängigkeiten
Dies ist wahrscheinlich eine wirklich grundlegende Frage, aber ich fürchte, ich weiß nicht viel über Java, und ich konnte nicht die Antwort finden überall.
Ich versuche zu bauen, ein Ant-Bibliothek, die abhängig von der TFS SDK. Ich folgte die Anleitung zum einrichten eines Projekts, aber wenn ich es exportieren als JAR und versuchen, eine Aufgabe auszuführen, mit Hilfe von ANT bekomme ich die folgende Fehlermeldung:
java.lang.NoClassDefFoundError: /com/microsoft/tfs/core/util/TFSUser
Merke ich, ich könnte die TFS SDK JAR in mein ANT-lib-Ordner, aber wenn möglich würde ich gerne mein GLAS, um es aufzunehmen und die Bibliothek, die nur arbeiten, ohne zu tun.
Diese Antwort scheint zu sagen, es ist möglich, alle Ressourcen werden gebraucht, um mit Eclipse (ich bin mit der 3.7.2), aber es nicht in allen Einzelheiten, wie Sie tatsächlich tun. Was ist die option in Eclipse zu tun?
- Können Sie Ihre ant-Datei?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wählen Sie "Extract required libraries into generated JAR", wie Sie die export.
Wählen Sie "Extract required libraries into generated JAR", wie Sie die export.
Verwenden Sie den Datei -> Exportieren -> Java -> Runnable JAR-Datei anstelle von Eclipse.
Den "Extract required libraries into generated JAR" sollte sein, was Sie brauchen.
Beim erstellen einer jar-erhalten Sie eine Dose mit nur Ihren code, und nicht alle Abhängigkeiten, die Ihr Glas erfordert. Sie könnte so etwas wie jarjar zu kombinieren, alle Abhängigkeiten in einer einzigen, einfach zu verwalten Jar-Datei oder kopieren Sie alle abhängen, die JARs in einem Ordner für die einfache Nutzung. Es sieht aus wie Eclipse hat Optionen, um auch diese Art der Sache (siehe posts oben).
Die andere Möglichkeit wäre die Verwendung eines dependency-management-system wie Maven oder Ivy. Dies hat eine höhere Lernkurve, aber für eine Bibliothek lohnt es sich, da es Benutzern ermöglichen, Ihre Bibliothek zu einfach schnappen Sie alle Abhängigkeiten. Für eine Endbenutzer-Anwendung, dann eine einzelne verteilbar ist wahrscheinlich eine bessere option (für die, die Sie nutzen könnten, Maven oder Ivy intern verwalten die Abhängigkeiten und dann so etwas wie jarjar oder Java Web Start verteilen an Ihre Endkunden).
Würden Sie brauchen, hängt classpath Attribut in der manifest-Datei. Dies erklärt auch bei Wie Paket-Bibliotheken mit in meine jar mit Ant
Nur im Fall, wenn Sie gerade mit maven. Sie müssen folgende plugin.
Mehr Lesen @ wie Baue ich die JAR-Datei mit den Abhängigkeiten?