6 Stimmen

Fügen Sie alle Artefakte aus dem JBoss Maven-Repository zum Maven-Projekt in Eclipse hinzu

Ich benutze JBoss EAP 6.0.1 (NICHT JBoss AS 7.1.1 oder 7.1.3!) und beginne gerade mit einem Maven-Projekt.

In normalen Eclipse-Projekten setze ich die Ziel-Runtime meines Projekts auf die JBoss EAP-Server-Runtime und dann sind alle Bibliotheken verfügbar. Verfügbar bedeutet hier, dass ich z.B. Strg-T verwenden kann, um eine Klasse in einer dieser Bibliotheken zu finden, und wenn ich die Quelle anhänge, kann ich beim Debuggen in sie eintauchen.

Wie würde ich das mit Maven (m2e) machen?

Ich habe das Maven-Repository für JBoss EAP 6.0.1 unter http://maven.repository.redhat.com/techpreview/eap6/6.0.1/ gefunden.

Muss ich meinem Projekt eine Stammabhängigkeit hinzufügen (die JBoss EAP selbst repräsentiert), und wenn ja, was wäre diese Abhängigkeit?

Ich habe eine sehr ähnliche Frage hier gefunden: JBoss AS 7-Module in Eclipse mit Maven oder JBoss Tools hinzufügen

Aber die akzeptierte Antwort sagt nur: "Schauen Sie sich diese Links an", was mir nicht genau sagt, wie ich das machen soll (und es ist für AS 7.1.1 und nicht für EAP 6.0.1).

UPDATE

Ich war nicht ganz klar über die Frage. Ich suche nicht nur nach einer Referenz auf die Java EE APIs. Ich weiß, wie das geht, denn es ist einfach:

    javax
    javaee-api
    1.6
    provided

Ich suche auch NICHT nach Vendor-Versionen dieser Spezifikations-Jar-Dateien. Ich suche absolut NICHT nach dem folgenden:

    org.jboss.spec
    jboss-javaee-6.0
    1.0.0.Final
    pom

Ich suche danach, alle Implementierungs-Bibliotheken im Projekt verfügbar zu haben. Der JBoss AS 6-Server macht das standardmäßig, und mit dem JBoss AS 7/EAP 6-Server können Sie dies erreichen, indem Sie zu Server -> Laufzeitumgebungen -> Standard-CP (Sie können dort einzelne Pfade eingeben oder einfach den /modules-Stammverzeichnis hinzufügen, um alles auf einmal zu haben)

Ich suche das Äquivalent dazu in einem Maven-Projekt.

ICH SUCHE NICHT NACH SPEZIFIKATIONS-JARS!!!!

Weil ich durch die TATSÄCHLICHEN IMPLEMENTIERUNGS-JARs des Zielservers steppen muss, benötige ich die TATSÄCHLICHEN IMPLEMENTIERUNGS-JARs. Ich WEISS, dass ich diese nicht bereitstellen kann, und beabsichtige dies auch nicht. Sie müssen in meiner IDE vorhanden sein, damit es Quellcode gibt, der dem entspricht, was im Ziel-JVM ist, und ich Strg-Shift-T verwenden kann, um IMPLEMENTIERUNGS-Klassen nachzuschlagen und mit Strg-Klick in sie zu navigieren, um Aufrufhierarchien zu analysieren usw.

NOCHMAL: ICH SUCHE NICHT NACH SPEZIFIKATIONS-JARS!!!!

3voto

Ronaldo Campos Punkte 361

Sie können die Abhängigkeiten manuell in Ihr Repository importieren. Ich habe es in unseres (Artifactory) importiert und es funktioniert.

Siehe: https://access.redhat.com/site/documentation/en-US/JBoss_Enterprise_Application_Platform/6/html/Development_Guide/Install_the_JBoss_Enterprise_Application_Platform_6_Maven_Repository_Locally.html

2voto

dexter meyers Punkte 2768

Ich habe eine überraschend einfache Lösung gefunden: Auch wenn Bibliotheken über Maven verwaltet werden und eine Ziel-Runtime standardmäßig deaktiviert ist, können Sie dennoch explizit eine Ziel-Runtime auswählen.

Die Bibliotheken, die diese Ziel-Runtime dem Klassenpfad hinzufügt, werden nun auch dem Klassenpfad des Maven-Projekts hinzugefügt, zusätzlich zu denen, die Maven dort bereits platziert. Sie können (manuell) den Quellcode an diese Bibliotheken anhängen.

Sobald Sie mit dem Debuggen und dem Schritt-für-Schritt-Durchlaufen der Interna Ihrer AS fertig sind, können Sie die Ziel-Runtime einfach wieder entfernen.

Eine Antwort, die erklärt, wie dies rein über Maven und für JBoss EAP 6.0.1 (nicht JBoss AS 7.1.1 oder 7.1.3) erfolgen kann, wäre dennoch willkommen, damit ich meine eigene Antwort nicht akzeptieren werde ;)

1voto

wemu Punkte 7522

Es gibt eine gute Erklärung der JBoss Maven-Repositories unter: https://community.jboss.org/wiki/MavenRepository

Ich vermute, das Repository, das du verwenden musst, ist: https://repository.jboss.org/nexus/content/groups/public-jboss/ es sollte alle JBoss-Artefakte enthalten, nach denen du suchst.

Vielleicht ist die groupId/artifactId nicht korrekt. Es gibt eine Suchfunktion für die Repositories unter: https://repository.jboss.org/nexus/index.html#welcome

Ich würde empfehlen, die impl-Jars nicht einzuschließen, da sie sowieso nicht bereitgestellt werden können. Also sollten die Spec-Jars in Ordnung sein:

    org.jboss.spec
    jboss-javaee-6.0
    1.0.0.Final
    pom

Siehe: http://www.andygibson.net/blog/quickbyte/jboss-java-ee-6-spec-dependency-in-maven/

Die gav für den JBoss-Server scheinen sich oft zu ändern. JBoss 7 ist unter folgendem Link zu finden:

  org.jboss.as
  jboss-as-ee
  7.1.3.Final

0voto

delkant Punkte 2244

Schauen Sie hier:

JBoss Enterprise Application Platform Komponenten Details

Und in meinem pom.xml verwende ich das, um Abhängigkeiten von JBoss EAP 6.0.1 zu erhalten

    org.jboss.spec
    jboss-javaee-6.0
    pom                
    provided
    3.0.2.Final

0voto

keydet Punkte 1

Sie können Nexus oder Git oder Overlord verwenden, um Projektkunstefakte zu verwalten und eine Proxy-Virtual-Abhängigkeit zu erstellen, falls ich mich nicht irre.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X