在Gradle中添加了依赖性,Liferay说“未解决的要求:导入 - 包”

时间:2017-07-14 13:04:55

标签: gradle liferay liferay-7 bnd

我写了一个Liferay模块并成功部署了它。

然后我在//SPI_InitTypeDef SPItest; SPIinit.Init.Mode = SPI_MODE_MASTER; SPIinit.Init.Direction = SPI_DIRECTION_1LINE; SPIinit.Init.DataSize = SPI_DATASIZE_8BIT; SPIinit.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; SPIinit.Init.CLKPhase = SPI_PHASE_1EDGE; SPIinit.Init.CLKPolarity = SPI_POLARITY_LOW; SPIinit.Init.FirstBit = SPI_FIRSTBIT_LSB; SPIinit.Init.TIMode = SPI_TIMODE_DISABLE ; SPIinit.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; SPIinit.Init.NSS = SPI_NSS_SOFT; HAL_SPI_Init(&SPIinit); 的{​​{1}}部分添加了这一行:

build.gradle

运行dependencies后,我可以在Eclipse中使用该库没有问题。但是部署失败了:

compileOnly group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.3'

我不知道为什么要查找./gradlew eclipse而不是12:29:35,454 WARN [fileinstall-/home/nico/liferay/osgi/modules][org_apache_felix_fileinstall:103] Error while starting bundle: file:/home/nico/liferay-dxp-digital-enterprise-7.0-sp3/osgi/modules/de.nico.mymodule-1.0.0.jar org.osgi.framework.BundleException: Could not resolve module: de.nico.mymodule [1085]_ Unresolved requirement: Import-Package: org.apache.http; version="4.5.3"_ [Sanitized] at org.eclipse.osgi.container.Module.start(Module.java:429) at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:402) at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1253) at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1225) at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:512) at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:361) at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:312)

这是我的org.apache.http

org.apache.httpcomponents

如何调查此问题?
我不想手动下载/添加JAR。

2 个答案:

答案 0 :(得分:1)

进一步的调查将从异常消息开始。它说RUNTIME没有以下要求:

  

Import-Package:org.apache.http;版本= “4.5.3”

我假设它是以下之一:

  • 您没有将http组件(或您需要的版本...请参阅Semantic Versioning)库部署到Liferay(因为编译工作正常,部署失败)
  • httpcomponents可能未打包为OSGi包。在这种情况下,您将不得不决定如何使代码可用。更多信息的良好起点是the official docs(感谢Andrea,在评论中宣传这一点)和David Nebinger's blog article

如何将这些依赖项添加到Liferay的运行时由您决定。如果依赖项是OSGi包,则可以直接下载和部署它们。如果它们不是OSGi包,请遵循链接文章中描述的技术之一。

答案 1 :(得分:0)

在您的bnd.bnd中

添加此代码..

Import-Package:\
    !org.apache.*,\
    \
    *