Я построил модуль образца со следующей структурой и зависимости:Gradle + OSGi Liferay7 модуль, включают переходные зависимости
osgi-lfr-module
+--- module0
| \--- org.apache.commons:commons-lang3:3.5
+--- module1
| \--- module0
\--- module2
+--- module1
\--- org.apache.commons:commons-collections4:4.1
Я хочу, чтобы создать единый jar
для развертывания в Liferay 7 модулей, содержащих 0, 1 и 2 и сторонние зависимости. Я знаю, что это не рекомендуемый подход, но я хотел бы знать, как его достичь.
module2/build.gradle
файл:
buildscript {
dependencies {
classpath 'com.liferay:com.liferay.gradle.plugins:2.0.10'
}
}
apply plugin: "com.liferay.plugin"
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
dependencies {
compile project(':module1')
compile group: 'org.apache.commons', name: 'commons-collections4', version: '4.1'
}
Я следовал инструкциям из OSGi Module Dependencies. До сих пор, я могу добавить прямые зависимости в module2/bnd.bnd
:
Bundle-Version: 1.0.0
Export-Package: com.test.module2, com.test.module1, com.test.module0
Bundle-ClassPath: \
.,\
lib/module1.jar,\
lib/commons-collections4.jar
-includeresource: \
lib/module1.jar=module1-1.0.0.jar,\
lib/commons-collections4.jar=commons-collections4-4.1.jar
Но если я пытаюсь добавить переходное DEPS, как module0
:
Bundle-ClassPath: \
.,\
lib/module0.jar,\
lib/module1.jar,\
lib/commons-collections4.jar
-includeresource: \
lib/module0.jar=module0-1.0.0.jar,\
lib/module1.jar=module1-1.0.0.jar,\
lib/commons-collections4.jar=commons-collections4-4.1.jar
сборки не может со следующей ошибкой:
:module2:jar
[Input file does not exist: module0-1.0.0.jar]
[No sub JAR or directory lib/module0.jar]
Может ли кто-нибудь помочь мне узнать, что я делаю неправильно? И, есть ли какой-нибудь способ менее ручной для добавления транзитивных зависимостей?
Заранее за вашу помощь.
Там опечатка во втором' bnd.bnd' фрагмент кода вы добавили: Я думаю, что это должно быть 'Библиотека/module0. jar = module0-1.0.0.jar', а не 'lib/module1.jar = module0-1.0.0.jar'. –