为什么不能找到osgi bundle依赖关系?
发布时间:2020-12-14 00:47:38 所属栏目:百科 来源:网络整理
导读:我已经在我的maven项目中声明了一个OSGi bundle作为依赖. (它恰好恰好是felix容器.) dependency groupIdorg.apache.felix/groupId artifactIdorg.apache.felix.framework/artifactId version4.0.2/version typebundle/type scopecompile/scope/dependency 当
我已经在我的maven项目中声明了一个OSGi bundle作为依赖. (它恰好恰好是felix容器.)
<dependency> <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.framework</artifactId> <version>4.0.2</version> <type>bundle</type> <scope>compile</scope> </dependency> 当我尝试构建它,它说它找不到它. [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Failed to resolve artifact. Missing: ---------- 1) org.apache.felix:org.apache.felix.framework:bundle:4.0.2 Try downloading the file manually from the project website. 但是,在中央快速查看会验证这个神器确实在那里.我注意到,如果我将它改为“jar”类型,那么它确实会为我下载jar(bundle).这让我想到了,为什么我把它称为捆绑在一起?嗯,我这样做是因为当我使用m2e来查找这些工件时,它被称为“捆绑”;事实上,m2e生成了我上面提到的那些坐标. 捆绑不是有效的maven工件类型?如果不是,为什么m2e称之为?
在接受的答案中提到,这不是m2e的故障.问题是maven不知道什么是“bundle”.所以你需要添加一个定义它的插件,即maven-bundle-plugin.请注意,您还需要将extensions属性设置为true.所以POM应该有类似的东西
<plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>2.4.0</version> <extensions>true</extensions> </plugin> 接受答案的问题是,如果类型包的依赖是一个直接的依赖关系,它是有效的;因为它是你的pom声明它,你可以删除类型.但是,如果您的依赖关系本身具有类型绑定的依赖关系,那么您将被拧紧,因为您的传递依赖关系之一是捆绑类型,您不能仅仅删除其中的类型,因为您不是该工件的所有者,并且没有访问pom,这再次你当前的执行不了解.它将尝试寻找repo / your-dependency.bundle 当使用依赖插件来复制依赖关系时遇到这个问题.在这种情况下,插件依赖必须进入插件本身.你只需要依赖插件来了解bundle的插件: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <dependencies> <dependency> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>2.4.0</version> <type>maven-plugin</type> </dependency> </dependencies> <extensions>true</extensions> </plugin> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- c# – 限制TextBox中的字符
- 将变量转换为int vs round()函数
- ruby-on-rails – 在6427ms(查看:6279,DB:96)中
- applicationContext.xml 配置文件的存放位置
- 在Unity3D中使用Mono.XML读取XML文件
- 如何在C#中使用Console应用程序设置鼠标光标的位
- OGG12.1(LINUX) for 11G R2 RAC classical inst
- c# – “任意”对象上的MOQ存根属性值
- iphone – 带UIPageControl的GMGridView
- u-boot-2014.10移植第25天----nand flash启动(三
热点阅读