2016-04-12 14 views
6

Próbuję przekonwertować "klasyczny" projekt JAVA EE, wykorzystując IBM websphere 8.0.0.5, do wielowymiarowego projektu maven i napotykając problemy z zależnościami IBM.Zależności Mavena dla pakietów IBM Websphere

Używamy klasy IBM z poniższych pakietów:

  • com.ibm.websphere.asynchbeans
  • com.ibm.websphere.scheduler
  • com.ibm.websphere.ce.cm
  • com.ibm.ws.asynchbeans
  • com.ibm.ws.util.ThreadPool

Aby dostać mój lokalny projekt został skompilowany Pobrałem was.installer-8.0.0.pm z IBM i zainstalowaniu go do mojego Maven użyciu

mvn install -f "was.installer-8.0.0.pom" -D serverInstallationFolder="C:\Program Files (x86)\IBM\WebSphere\AppServer" 

Ten krok był udany według wyjściu linii poleceń.

I dodaje następujące zależności do mojego projektu, jak opisano z IBM:

W dominującej:

<dependency> 
<groupId>com.ibm.tools.target</groupId> 
<artifactId>was</artifactId> 
<version>8.0.0</version> 
<type>pom</type> 
<scope>provided</scope> 
</dependency> 

W module:

<dependency> 
    <groupId>com.ibm.tools.target</groupId> 
    <artifactId>was</artifactId> 
</dependency>  

Ale nadal nie mogę skompilować mój projekt, ponieważ pakiety IBM nie zostały znalezione.

Czy ktoś może mi pomóc znaleźć i poprawić błąd, który popełniłem?

Edit

Po wykonaniu końcówki BevynQ od komentarzach skopiowane "was_public.jar" na "was_public-8.0.0.jar" (opisany w IBM here) i dodano go do mojego repozytorium:

mvn install:install-file -Dfile="C:\Program Files (x86)\IBM\WebSphere\AppServer\dev\was_public-8.0.0.jar" -DpomFile="C:\Program Files (x86)\IBM\WebSphere\AppServer\dev\was_public-8.0.0.pom" 

potem zmienił zależności do:

<dependency> 
<groupId>com.ibm.websphere.appserver</groupId> 
<artifactId>was_public</artifactId> 
<version>8.0.0</version> 
<scope>provided</scope> 
</dependency> 

<dependency> 
    <groupId>com.ibm.websphere.appserver</groupId> 
    <artifactId>was</artifactId> 
</dependency>  

pomogło to uzyskać kompilacji błędów dla importu s do com.ibm.websphere zrobione.

Co mam teraz nadal otwarte jest pakiet com.ibm.ws.* pakiet. Ktoś ma pomysł?

Edycja 2 dodałem następujące zależności, a potem został pozbyć błędów com.ibm.ws.* importowych.

<dependency> 
    <groupId>com.ibm.websphere.ws</groupId> 
    <artifactId>com.ibm.ws.runtime</artifactId> 
    <version>1.0.0</version> 
</dependency> 

Ale jeszcze nie teraz skompilować jako pośrednio odniesienia nie można znaleźć (w moim przypadku commonj.work.WorkManager). Wygląda na to, że muszę dodać kolejne .jars dla każdej rzeczy. Czy nie ma prostszego sposobu na dostarczenie wszystkich słoików na stronie internetowej w tym samym łączu z zależnością com.ibm.tools (która nie działa)?

+0

Nie sądzę, że to zadziała. Chcesz zainstalować wymagane biblioteki w lokalnym sklepie. https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html. POM jest niewystarczające – BevynQ

+0

Zmieniłem moje pytanie po wypróbowaniu twoich rad i mogłem skompilować pakiety 'com.ibm.websphere', ale wciąż brakowało kilku z nich' com.ibm.ws'. Ktoś wie, jak je zdobyć? – bish

Odpowiedz

0

Oto rozwiązanie więc rozwiązać moje problemy z zależnościami:

  1. skonfigurowałem menedżer repozytorium Company (Nexus) jak lustro. W tym nexusie są obecne wszystkie pakiety IBM. Jak można sądzić, że rozwiązany główny problem.
  2. Następnie dodaje się następujące zależności, zgodnie z ogólnie przyjętą stylu maven:

zależności w pom.xml (numery wersji wyodrębnione własności):

<dependency> 
    <groupId>com.ibm.websphere.ws</groupId> 
    <artifactId>com.ibm.ws.runtime</artifactId> 
    <version>${ibm.ws.runtime.version}</version> 
</dependency> 


<dependency> 
    <groupId>com.ibm.ws.prereq</groupId> 
    <artifactId>commonj-twm</artifactId> 
    <version>${ibm.ws.prereq.commonj-twm.version}</version> 
</dependency> 

Niestety nie może zapewnić „dobre” rozwiązanie to jest użyteczne dla wszystkich ludzi, ale odpowiedź od njr i komentarz z BevynQ pomógł dużo lepiej zrozumieć problem i pomógł rozwiązać problem w "bardziej ręczny" sposób, kopiując potrzebne słoiki przez dłoń.

3

Ogólnie com.ibm.websphere są publiczne API do użycia przez aplikacje (dotyczy to opakowań ty wymienionych powyżej), która jest zgodna z nich jest w was_public.jar

Jednak com.ibm.ws pakiet jest zazwyczaj wewnętrzne produktu. Czy mogę zapytać, jakich metod interfejsu używasz z pakietu com.ibm.ws.asynchbeans? Może istnieje publiczna alternatywa API.

Jeśli chodzi o commonj.work, jedynym miejscem, które można znaleźć w obrazie produktu WebSphere Application Server, jest WAS/plugins/com.ibm.ws.prereq.commonj-twm.jar, więc wygląda na to, że będziesz musiał użyć tego do kompilacji.

+1

Użytkownicy nie powinni uzyskiwać dostępu do zawartości WAS_HOME/plugins/bezpośrednio, więc powinno to być prawdopodobnie uważane za problem z produktem. Otrzymano APAR dla innych API, które nie były dostępne w WAS_HOME/dev/(np. Http://www-01.ibm.com/support/docview.wss?uid=swg1PM85738). –

+0

Na przykład używamy 'WorkManagerImpl' z pakietu' com.ibm.ws.asynchbeans'.Nie jestem pewien, czy mam "pozwolenie" na zmianę bibliotek, ponieważ jest to moduł produkcyjny, a migracja dla maven i CI jest (na obecnym etapie) pierwszym krokiem do zebrania doświadczeń z maven i umożliwienia CI w przyszłości. Dziękuję za podpowiedź, w której znajdują się pliki 'commonj'. Wczoraj dostałem powiadomienie o szerokim nexusie firmy, w którym znajdują się pliki IBM, więc to jest sposób, który próbuję teraz. Ale zachowam twoją odpowiedź na uwadze i będę jej później odpowiadać. – bish

0

byłem w obliczu tego problemu, jak starałem się budować projektu przy użyciu Maven wersji 3.3.9, który działa w wersji Java 1.8.0_101, jak pokazano na zrzucie ekranu:

enter image description here

To jak ja rozwiązany: Krok 1. Pobierz plik commonj.jar z here. Krok 2. Określ, którego JDK Twój Maven używa, wpisując mvn -version w wierszu polecenia. enter image description here

Krok 3. przejdź do tego katalogu i umieść plik commonj.jar tam w katalogu jre/lib/ext, jak pokazano poniżej. Teraz twój projekt powinien budować w maven bez żadnych problemów.

enter image description here

Powiązane problemy