Hinzufügen Abhängigkeit jar Einträge zu jar-index (/META-INF/INDEX.LISTE)
Während der Entwicklung einer applet, ich habe ein maven-Projekt mit .jar-Verpackung und anderes .jar-Abhängigkeiten. Jetzt möchte ich hinzufügen ein Archiv-index (/META-INF/INDEX.LISTE) zu meinem Projekt jar enthält nicht nur die Einträge für diese jar-Datei aber auch die Einträge aller Abhängigkeit jar ist.
Mit dem jar-Befehl Linie Werkzeug würde ich es erreichen, mit
> Glas ich myproject.jar dependency1.jar dependency2.jar ...
Mithilfe des maven-Archiv index-flag des maven-jar-plugin nur die Einträge für myproject.jar auftreten, die in der Archiv-index, nicht so die Einträge der dependency-jars:
...
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<index>true</index>
</archive>
</configuration>
</plugin>
...
Gibt es eine Möglichkeit, die Einträge von Abhängigkeiten in der index-Datei mit maven?
Danke für irgendwelche Tipps...
- Wie hast du das definieren der Abhängigkeiten ? (Umfang?)
- <Abhängigkeiten> <Abhängigkeit> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <Anwendungsbereich>test</scope> </Abhängigkeit> <Abhängigkeit> <groupId>test.Firma</groupId> <artifactId>applet-core</artifactId> <version>1.1</version> </Abhängigkeit> </Abhängigkeiten>
- Sehen Sie nur das applet-core-Artefakt in den classpath (MANIFEST.MF-Datei).
- Ich habe es auch arbeiten für das Projekt und auch die Abhängigkeit Artefakte. Ich poste die Antwort, wenn ich darf 😉
- Ich dachte, es funktioniert, aber sah ein anderes problem: ich habe ein neues Projekt erstellt, Hinzugefügt der Archiv-index-parameter in den maven-jar-plugin-config (wie oben gezeigt) in der pom.xml und erstellt zwei Dateien: src/main/resources/a.txt und src/main/resource/test/b.txt. Nach einem maven-Installation a.txt Auftritt im INDEX.LISTE b.txt NICHT aufgeführt ist (im Gegensatz dazu, wird der Ordner test wird angezeigt). Ich konnte keine Fehler melden. Wo ist mein Fehler?
- Keine Fehler. Nach docs.oracle.com/javase/1.4.2/docs/guide/jar/jar.html#Overview, werden nur die Dateien des root-Verzeichnis und Unterverzeichnisse (packages) werden in den INDEX.LISTE.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich schließlich löste es mit der folgenden Konfiguration:
Mit dieser Konfiguration werden alle jar-Dateien (Projekt und Abhängigkeiten) sind aufgelistet in der MANIFESTIEREN.MF ist classpath und-Einträge (Dateien auf Verzeichnisebene-und package-Namen nach dem jar-index doc) auftreten, wird in INDEX.LISTE.
Hinweis #1: Mit beiden index und addManifest vor version 2.4 Ergebnisse in der beschriebenen Fehler in http://jira.codehaus.org/browse/MJAR-69. So stellen Sie sicher, dass die version 2.4 des maven-jar-plugin.
Hinweis #2: Aufgrund der beschriebenen Fehler in http://jira.codehaus.org/browse/MNGECLIPSE-1219, Abhängigkeiten auftreten, weder im MANIFEST.MF noch im INDEX.LISTE, wenn die Abhängigkeiten mit aufgelöst Resolve Workspace artifacts (option der Eclipse Run configuration). So stellen Sie sicher, dass Sie a) zuerst installieren/bereitstellen aller Abhängigkeiten und b) deaktivieren Sie die Resolve Workspace artifacts option (oder in der Nähe der dependency-Projekt in eclipse), wenn nötig, bevor das Projekt mit eclipse.
Hinweis #3: verwenden Sie NICHT sowohl die jar-with-dependencies (maven-assembly-plugin) und addClasspath (maven-jar-plugin), oder Sie werden doppelt alle Einträge in der resultierenden jar.
Hinweis #4: Die java jar Kommandozeilen-tool ist auch zu bewerten das MANIFEST.MF s-classpath (neben expliziten Liste von jar-Dateien, die beim aufrufen des Werkzeugs wie abgebildet, in meinem ersten Beispiel), finden Sie in der index-Beispiel der jar doc.
Durch Hinweis #2 werde ich untersuchen, in ANT ist jar...
Vielen Dank an @khmarbaise zeigen meine in die richtige Richtung 🙂
Wissen Sie, dass dies nicht Teil der INDEX.LISTE Datei verursachen es enthält nur Klassen, aber nicht die Abhängigkeiten. Die Abhängigkeiten sollten sich in dem MANIFEST.MF-Datei statt (soweit ich weiß).
Basierend auf Maven Sie nicht bekommen, dass die Informationen in den INDEX.LISTE-Datei. Sie können das MANIFEST.MF-Datei für dieses.