2016-04-12 3 views
6

Я пытаюсь преобразовать «классический» проект JAVA EE, используя IBM websphere 8.0.0.5, в проект мультимодульного модуля maven и сталкиваясь с проблемами с IBM dependecies.Зависимости Maven для пакетов IBM Websphere

Мы используем классы IBM из следующих пакетов:

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

Для того, чтобы получить мой местный проект для компиляции я скачал was.installer-8.0.0.pm из IBM и установил его на мой мавена используя

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

Этот шаг был преуспевающим в соответствии с выходом из командной строки.

Затем я добавил следующие зависимости для моего проекта, как описано от 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" в "was_public-8.0.0.jar" (описанный в IBM here) и добавить его в мой репозиторий:

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" 

затем я изменил зависимости на:

<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>  

Это помогло получить компиляции ошибки для импорта s до com.ibm.websphere сделано.

В настоящее время у меня еще есть пакеты com.ibm.ws.*. У кого-нибудь есть идея?

Edit 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). Кажется, мне нужно добавить еще .jars для каждой вещи. Разве нет более простого способа предоставить все банки websphere сразу как descirbe в вышеупомянутом связанном учебнике с зависимостью com.ibm.tools (которые не работают)?

+0

Я не думаю, что будет работать. Вы хотите установить необходимые библиотеки в свой локальный магазин. https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html. POM недостаточно. – BevynQ

+0

Я отредактировал свой вопрос после того, как попробовал ваш совет, и я мог бы скомпилировать пакеты 'com.ibm.websphere', но все же не хватает нескольких из' com.ibm.ws'. Кто-нибудь знает, как их получить? – bish

ответ

0

Вот решение, поэтому я решил свои проблемы с зависимостями:

  1. Я настроил менеджер хранилища компании (Nexus) в качестве зеркала. В этой связи присутствуют все пакеты ibm. Как вы думаете, это решило главную проблему.
  2. Затем я добавил следующие зависимости в соответствии с общим стилем 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 помогли решить проблему, помогли решить проблему «вручную», скопировав необходимые банки рука.

3

В общем, com.ibm.websphere являются открытым API для использования приложений (это относится и к пакетам, которые вы перечислили выше), что согласуется с этим, находясь в was_public.jar

Однако com.ibm.ws пакета обычно Внутренность продукта. Могу ли я спросить, какие методы интерфейса вы используете из пакета com.ibm.ws.asynchbeans? Возможно, существует общедоступная альтернатива API.

Относительно commonj.work, единственное место, где я могу найти это в продукте продукта WebSphere Application Server, составляет WAS/plugins/com.ibm.ws.prereq.commonj-twm.jar, поэтому похоже, что вам нужно будет использовать его для компиляции.

+1

Пользователи не должны получать доступ к содержимому WAS_HOME/plugins/напрямую, поэтому это, вероятно, следует рассматривать как проблему продукта. APAR были взяты для других API, которые не были доступны в WAS_HOME/dev/(например, http://www-01.ibm.com/support/docview.wss?uid=swg1PM85738). –

+0

Например, мы используем 'WorkManagerImpl' из пакета' com.ibm.ws.asynchbeans'.Я не уверен, что мне «разрешено» изменять библиотеки, так как это продуктивный модуль, и миграция для maven и CI (на данном этапе) - это первый шаг для сбора опыта работы с maven и для выполнения CI в будущем. Спасибо за подсказку, в которой хранятся файлы 'commonj'. Вчера я обратил внимание на общую связь компании, в которой находятся файлы ibm, так что я пытаюсь сейчас. Но я буду помнить ваш ответ и снова ответим на него. – bish

0

я столкнулся этот вопрос, как я пытался построить проект с использованием Maven версии 3.3.9, работает на Java версии 1.8.0_101, как показано на скриншоте:

enter image description here

Это, как я разрешил: Шаг 1. Скачать commonj.jar от here. Шаг 2. Определите, какой JDK ваш Maven использует, введя mvn -version в командной строке. enter image description here

Шаг 3. Перейти в этот каталог и поместите файл commonj.jar находится в каталоге jre/lib/ext, как показано на рисунке ниже. Теперь ваш проект должен строиться на maven без каких-либо проблем.

enter image description here

Смежные вопросы