Я использую оболочку Gradle 5.1.1 с плагином eclipse-wtp для построения многомодульного EAR.Я импортирую проект как существующий gradle-проект в Eclipse, и там нет ошибок.Но как только я пытаюсь развернуть приложение в WebSphere 8.5.5, я получаю следующую ошибку:
[2/5/19 12:00:09:566 CST] 00000154 wtp E org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchiveFactoryImpl createTempZipFileStrategyIfPossible Failed to open input stream on target [ WEB-INF/lib/ServiceBusiness.jar ].
Failed to create temporary file.
A nested strategy will be used, but this usually slows performance dramatically.
...
...
Caused by: com.ibm.ws.exception.RuntimeWarning: java.io.FileNotFoundException: Unable to obtain binaries path for [ NestedArchiveLoadStrategy [ -1512854742 ] URI [ WEB-INF/lib/ServiceBusiness.jar ] Container [ 391870138 ] Open [ true ] ]
Если я создаю приложение с использованием gradle, оно развертывается нормально и работает.
После некоторых исследований я обнаружил, что проблема связана с тем, как gradle создает путь к классам проектов.
У меня есть обходной путь для этогорешение, которое включает снятие флажка Allow output folders for source folders
, после чего приложение успешно разворачивается.Но это приводит к тому, что всем разработчикам приходится вручную исправлять путь к классу в eclipse каждый раз, когда они обновляют проект gradle.
Есть ли способ заставить его работать без этого?
Структура проекта выглядит так:ниже:
Service.ear
+
+--->Service.war
+ +
| +-->ServiceBusiness.jar
+