Зависимости Maven для пакетов IBM Websphere
Я пытаюсь преобразовать "классический" проект JAVA EE, используя IBM websphere 8.0.0.5, в многомодульный проект maven и сталкиваюсь с проблемами с зависимостями IBM.
мы используем классы IBM из следующих пакетов:
- com.компания IBM.в WebSphere.asynchbeans
- com.компания IBM.в WebSphere.планировщик
- com.ibm.websphere.ce.см
- com.ibm.ws.asynchbeans
- ком.корпорация IBM.с WS.утиль.Класса ThreadPool
чтобы мой локальный проект был скомпилирован, я загрузил was.установщик-8.0.0.pm от IBM и установил его на мой Maven с помощью
mvn install -f "was.installer-8.0.0.pom" -D serverInstallationFolder="C:Program Files (x86)IBMWebSphereAppServer"
этот шаг был успешным в соответствии с выводом командной строки.
затем я добавил следующие зависимости к моему проекту, как описано в IBM:
в родителей:
<dependency>
<groupId>com.ibm.tools.target</groupId>
<artifactId>was</artifactId>
<version>8.0.0</version>
<type>pom</type>
<scope>provided</scope>
</dependency>
в модуле:
<dependency>
<groupId>com.ibm.tools.target</groupId>
<artifactId>was</artifactId>
</dependency>
но я все еще не могу скомпилировать свой проект, поскольку пакеты IBM не найдены.
может кто поможет мне найти и исправить ошибку, которую я сделал?
редактировать
после следования подсказке BevynQ из комментариев я скопировал " was_public.jar " to " was_public-8.0.0.фляги" (описано в IBM здесь) и добавил его к моей репозиторий:
mvn install:install-file -Dfile="C:Program Files (x86)IBMWebSphereAppServerdevwas_public-8.0.0.jar" -DpomFile="C:Program Files (x86)IBMWebSphereAppServerdevwas_public-8.0.0.pom"
затем я изменил зависимостями:
<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>
это помогло получить ошибки компиляции для импорта в com.ibm.websphere
сделано.
то, что у меня теперь все еще открыто, это пакеты com.ibm.ws.*
пакета. У кого-нибудь есть идея?
Изменить 2
Я добавил следующую зависимость, а затем я избавился от com.ibm.ws.*
ошибки импорта.
<dependency>
<groupId>com.ibm.websphere.ws</groupId>
<artifactId>com.ibm.ws.runtime</artifactId>
<version>1.0.0</version>
</dependency>
но он по-прежнему не компилируется, как теперь косвенно ссылается не удается найти (в моем случае commonj.work.WorkManager
). Похоже, мне нужно добавить .банки для каждой вещи. Разве нет более простого способа предоставить все банки websphere сразу как descirbe в приведенном выше учебнике с com.ibm.tools
зависимость (которая не работает)?
3 ответов
В общем, com.ibm.websphere
являются общедоступными API для использования приложениями (это верно для пакетов, перечисленных выше), которые согласуются с ними в was_public.jar
com.ibm.ws
пакет вообще внутренности продукта. Могу ли я спросить, какие методы интерфейса вы используете из ? Возможно, есть публичная альтернатива API.
о commonj.work
, единственное место, где я могу найти это в образе продукта WebSphere Application Server -WAS/plugins/com.ibm.ws.prereq.commonj-twm.jar
так это похоже, вам нужно будет использовать это для компиляции.
вот решение, поэтому я решил свои проблемы с зависимостями:
- Я настроил менеджер репозитория компании (nexus) в качестве зеркала. В этом nexus присутствуют все пакеты ibm. Как вы можете думать, что решили главную проблему.
- затем я добавил следующие зависимости в соответствии с общим стилем maven:
в зависимости pom.xml
(номера версий, извлеченные в свойства):
<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>
Извините, я не могу предоставить "хорошее" решение это пригодно для всех людей, кроме ответа от njr и комментарий BevynQ помог в лот, чтобы получить яснее с проблемой и помог решить проблему "более ручным" способом, скопировав необходимые банки вручную.
я столкнулся с этой проблемой, когда пытался построить проект с помощью Maven версии 3.3.9, работающий на Java версии 1.8.0_101, как показано на скриншоте:
вот как я решил это: Шаг 1. скачать commonj.банка от здесь.
Шаг 2. определите, какой JDK ваш Maven использует, введя mvn -version
в командной строке.
шаг 3. перейдите в этот каталог и поместите commonj.jar
файл там в