2016-06-10 5 views
0

Websphere eine Reihe von Gläsern versehen bietet, einschließlich com.ibm.ws.ejb.thinclient_8.5.0.jar, com.ibm.ws.batch.runtime.jar, com.ibm.ws.orb_8.5.0.jar usw.POM-Dateien für Websphere bestimmte Gläser

Im ANT Build-Prozess, hatten einige Leute diese Dateien auf dem Classpath. Jetzt bewegen wir uns auf Maven, und ich bin nicht sicher, was ich mit diesen Dateien tun sollten:

  • Wenn sie Teil des Build-Prozesses sein sollte, muss ich sie in das Repository setzen. Aber wie soll ich richtige POMs für sie bekommen oder generieren?

  • Wenn sie nicht Teil des Build-Prozesses sein sollten, was sind richtige Ersetzungen?

+0

Das hängt davon ab: Werden diese JAR-Dateien nur zur Laufzeit verwendet oder sind sie auch beim Erstellen (Kompilieren) des Artefakts erforderlich? – hotzst

+0

Die Klassen der Artefakte werden direkt im Quellcode verwendet und sind daher für die Kompilierung erforderlich. –

+0

https://developer.ibm.com/answers/answers/169437/view.html – fnt

Antwort

3

Wenn Sie ein Unternehmen Maven-Repository als ein Proxy von zentraler Bedeutung für Maven, ist das Beste, was zu tun, da diese JAR-Dateien zur Verfügung zu stellen:

mvn install:install-file -Dfile=<path to the jarfile> -DgeneratePom=true -Dpackaging=jar -Dversion=<version> -DgroupId=<groupId> -DartifactId=<artifactId> 

In einem solchen Fall die groupId ist normalerweise zusammengesetzt aus Ihrem Firmenpräfix und dann dem Basispaket des Artefakts. Die artefactId wäre der letzte Teil ohne die Version. Zum Beispiel für com.ibm.ws.ejb.thinclient_8.5.0.jar, die Version ist , die artifactId thinclient und die groupId etwas wie com.example.thirdparty.com.ibm.ws.ejb. Der gleiche Ansatz funktioniert auch, wenn Sie der einzige Entwickler sind und diese Artefakte in Ihrem lokalen Repository installieren.

Siehe auch die official documentation

Ein weiterer Ansatz, um diese Dateien als Teil des Projektes zu haben wäre und sie durch einen lokalen Pfad zu verweisen und von dort installiert entweder mit den maven-install-plugin oder durch die Schritte vom ersten Ansatz Ausstellung als Teil des Build-Prozesses. Siehe Maven and adding JARs to system scope und Maven: add a dependency to a jar by relative path.

Haftungsausschluss: Ich habe immer die erste Option verwendet, da dies der richtige Weg zu sein scheint.

+0

Vielen Dank. Eigentlich habe ich nach einer mehr Websphere-spezifischen Antwort gesucht, weil Ihre Methode nur leere Poms für jedes der Gläser erstellt. Ich hoffte, dass es irgendwo im Web oder bei IBM vordefinierte Poms gibt. –

+1

@JFMeier gibt es keine öffentlich verfügbaren Mavenartefakte für die WebSphere-Thinclient-Jars. Ihre beste Option IMO ist es, lokale Maven-Artefakte von Ihrer lokalen Installation zu erstellen, wie hotzst vorgeschlagen hat. –

1

Versuchen Sie, die "was_public" JAR und POM ausgeliefert zusammen mit WebSphere Application Server traditionelle, ab Version here 8.

See.

+1

Wie verhält sich die was_public.jar zu allen anderen Websphere-Jars, wie die in der Frage erwähnten? –

+0

Der Zweck besteht darin, die öffentlich dokumentierten APIs bereitzustellen, nicht die verschiedenen Clientlaufzeiten. Z.B. Es verfügt über die Batch-APIs, jedoch nicht über die ORB-Laufzeitklassen. Sie müssen also möglicherweise die JARs in Ihr lokales Repository einfügen, wie die andere Antwort erwähnt, aber dies beantwortet zumindest die Frage "Wo finde ich einige von IBM definierte POMs für WebSphere-APIs?". –

+0

Tatsächlich definiert der Pom von was_public keine Abhängigkeiten. Aber danke für den Hinweis. –