使用maven-bundle-plugin的错误Embed-Dependency
我有一个构建良好的Maven项目,我试图添加对twitter4j的引用。使用maven-bundle-plugin的错误Embed-Dependency
所以我将其添加到POM:
<dependency> <groupId>org.twitter4j</groupId>
<artifactId>twitter4j-core</artifactId>
<version>[2.2,)</version>
<type>jar</type>
<optional>false</optional>
<scope>compile</scope>
</dependency>
当我建(MVN全新安装),我得到:
[ERROR] Error building bundle net.stevex.tweetfetcher:tweetfetcher-bundle:bundle:1.0-SNAPSHOT : Unresolved references to [twitter4j] by class(es) on the Bundle-Classpath[Jar:dot]: [net/stevex/tweetfetcher/impl/TweetFetcherImpl.class]
这是有道理的。该twitter4j包未嵌入捆绑。所以,我想补充一个嵌入的依赖于Maven的捆插件的说明:
<Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
,现在当我建,我得到:
[ERROR] Error building bundle net.stevex.tweetfetcher:tweetfetcher-bundle:bundle:1.0-SNAPSHOT : Unresolved references to [dalvik.system, javax.crypto, javax.crypto.spec, javax.management, javax.management.openmbean, org.apache.commons.logging, org.apache.log4j, org.slf4j.impl, twitter4j.internal.http.alternative] by class(es) on the Bundle-Classpath[Jar:dot, Jar:twitter4j-core-2.2.3.jar]: [twitter4j/internal/logging/CommonsLoggingLogger.class, twitter4j/internal/logging/Log4JLoggerFactory.class, twitter4j/auth/OAuthToken.class, twitter4j/internal/http/HttpClientFactory.class, twitter4j/auth/OAuthAuthorization.class, twitter4j/internal/logging/Log4JLogger.class, twitter4j/conf/ConfigurationBase.class, twitter4j/TwitterAPIMonitor.class, twitter4j/internal/logging/CommonsLoggingLoggerFactory.class, twitter4j/management/APIStatisticsOpenMBean.class, twitter4j/internal/logging/Logger.class]
我不明白为什么twitter4j类失踪,我不明白对dalvik.system,javax.crypto等的引用。这里有什么问题?
回答:
问题是twitter4j项目需要错误列表中列出的所有软件包。当你使用它时不包括所有的传递依赖。这里是行家束-插件的嵌入传递指令将嵌入所有传递依赖
<Embed-Dependency>*;scope=compile|runtime</Embed-Dependency> <Embed-Transitive>true</Embed-Transitive>
然而,这种失败的OSGi的目的。这让您知道两个选项:
搜索SpringSource EBR中的第二个包。您只需在搜索框中输入包名称,结果将包括您的POM文件的xml。 SpringSource捆绑包将包含对EBR中其他捆绑包的引用,从而消除传递依赖关系的问题。
使用maven-bundle-plugin的bundle-all目标。这个目标将为您的项目的每个依赖项运行maven bundle插件,并将结果绑定到您的目标目录中。然后,您可以将这些软件包安装到本地存储库中。
我会推荐使用选项1作为许多捆绑软件,因为您可以找到,然后在SpringSource没有它们时默认选项2。
以上是 使用maven-bundle-plugin的错误Embed-Dependency 的全部内容, 来源链接: utcz.com/qa/259448.html