Maven 第谷——”;“未满足的约束”;在进口包装上
我刚从第谷开始,我在早期阶段就被难倒了。也许我误解了什么,所以以防万一,我期望的是:我用OSGi风格定义我的包的需求(即通过导入包Maven 第谷——”;“未满足的约束”;在进口包装上,maven,osgi,tycho,Maven,Osgi,Tycho,我刚从第谷开始,我在早期阶段就被难倒了。也许我误解了什么,所以以防万一,我期望的是:我用OSGi风格定义我的包的需求(即通过导入包在MANIFEST.MF中定义),Tycho以某种方式动态地使用这些信息,而不是我需要用Maven风格重新定义它(即,我不必将依赖项放在pom.xml中) 因此,我在Eclipse中使用m2eclipse插件、m2eclipse tycho插件和PDE插件制作了一个简单的Maven项目,并将以下tycho内容放入pom中: <properties>
在MANIFEST.MF
中定义),Tycho以某种方式动态地使用这些信息,而不是我需要用Maven风格重新定义它(即,我不必将依赖项放在pom.xml中)
因此,我在Eclipse中使用m2eclipse插件、m2eclipse tycho插件和PDE插件制作了一个简单的Maven项目,并将以下tycho内容放入pom中:
<properties>
<tycho-version>0.15.0</tycho-version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>${tycho-version}</version>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
然后,我希望Tycho以某种方式神奇地发现我需要Netty,因此就好像我在我的Maven pom.xml中插入了如下内容一样:
<dependency>
<groupId>org.jboss.netty</groupId>
<artifactId>netty</artifactId>
<version>3.5.1.Final</version>
</dependency>
我不知道从这里到哪里去。我对第谷应该做什么有一些基本的误解吗?或者我还需要设置其他东西,以便它能够将MANIFEST.MF
中的导入包
条目转换为
pom.xml条目,从而实现“神奇”的转换?还是别的什么
提前谢谢。是的,还有一些障碍需要克服
简言之,您将需要向Tycho提供一个存储库,它可以从中检索依赖项
更详细地说:
- 您需要设置目标平台,并将其传递给第谷。我想您已经在某种程度上设置了目标平台,否则Eclipse也会抱怨没有找到Netty李>
- 确保在您的工作区中共享您的目标平台,以便Tycho也可以访问它
- 告诉第谷使用目标平台,就像
- Tycho兼容的目标平台只支持p2布局,因此没有普通目录。我不确定什么是最好的方式,使p2回购这样,因为我已经问了一个问题。没有任何答案,但我确实在那里解释了什么对我有用
希望这能有所帮助,Frank您的理解已经相当不错了,但是缺少了一个小而重要的部分:与Maven不同,Tycho中没有规范的默认存储库(如“central”)。您需要配置Tycho搜索解决OSGi依赖关系的位置
此搜索范围在Tycho中称为“”。有,;最简单的方法是使用附加的p2
属性配置POM中包含依赖项的p2存储库(假设您知道包含依赖项的p2存储库)。还可以通过额外的依赖项配置将缺少的包直接添加到失败的包:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho.version}</version>
<configuration>
<dependency-resolution>
<extraRequirements>
<requirement>
<type>eclipse-plugin</type>
<id>org.eclipse.jface.text</id>
<versionRange>0.0.0</versionRange>
</requirement>
</extraRequirements>
</dependency-resolution>
</configuration>
</plugin>
org.eclipse.tycho
目标平台配置
${tycho.version}
eclipse插件
org.eclipse.jface.text
0.0.0
谢谢!目标平台是我所缺少的。
Unsatisfied constraint: 'Import-Package: org.jboss.netty.channel;version="[3.5.1,4.0.0)"
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho.version}</version>
<configuration>
<dependency-resolution>
<extraRequirements>
<requirement>
<type>eclipse-plugin</type>
<id>org.eclipse.jface.text</id>
<versionRange>0.0.0</versionRange>
</requirement>
</extraRequirements>
</dependency-resolution>
</configuration>
</plugin>