gpt4 book ai didi

maven - 第谷 - 导入包上的 "Unsatisfied constraint"

转载 作者:行者123 更新时间:2023-12-04 15:01:51 27 4
gpt4 key购买 nike

我刚刚开始使用第谷,我在早期阶段被难住了。也许我误解了一些东西,所以以防万一,这就是我所期待的:我以 OSGi 风格(即在 MANIFEST.MF 中通过 Import-Package )定义了我的包的需求,并且第谷以某种方式即时使用该信息而不是我需要以 Maven 风格重新定义它(即我不必在 pom.xml 中放置依赖项)。

所以,我做了一个简单的 Maven 项目,在 Eclipse 中使用 m2eclipse 插件、m2eclipse-tycho 插件和 PDE 插件,并将以下 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>

努力克服了一些古怪的配置错误,最终得到了一个基本上空的项目(即没有源代码),它在 Eclipse 中没有给出任何错误或警告。然后我从另一个项目中复制了我的源代码,并且(正如预期的那样)由于缺少依赖项而出现一堆编译器错误。第一个是来自 org.jboss.netty.channel 的 AbstractChannel。我使用 Netty 的 3.5.1.Final 版本,所以我编辑了我的 MANIFEST.MF 以包括:
Import-Package: org.jboss.netty.channel;version="[3.5.1,4)"

然后我期待第谷以某种方式神奇地发现我需要 Netty,因此就像我在我的 Maven pom.xml 中插入了如下内容一样:
<dependency>
<groupId>org.jboss.netty</groupId>
<artifactId>netty</artifactId>
<version>3.5.1.Final</version>
</dependency>

相反,发生的一切只是我在 Eclipse 中遇到了一个额外的错误,说:
Unsatisfied constraint: 'Import-Package: org.jboss.netty.channel;version="[3.5.1,4.0.0)"

我不知道从这里去哪里。我对第谷应该做什么有一些根本的误解吗?或者还有什么我必须设置才能让它能够从 Import-Package 进行“神奇”的翻译进入 MANIFEST.MF<dependency> pom.xml 条目?或者是其他东西?

提前致谢。

最佳答案

是的,还有一些障碍需要克服。

简而言之,您需要为 Tycho 提供一个存储库,它可以从中检索依赖项。

更详细一点:

  • 您需要设置目标平台,并将其传递给第谷。我猜您已经以某种方式设置了目标平台,否则 Eclipse 也会提示找不到 Netty。
  • 确保在工作区中共享目标平台,以便第谷也可以访问它。
  • 告诉第谷使用该目标平台,如 this
  • Tycho 兼容的目标平台仅支持 p2 布局,因此没有普通目录。我不确定制作这样的 p2 存储库的最佳方法是什么,因为我已经问过 while back .没有任何答案,但我确实在那里解释了什么(某种)对我有用。

  • 希望它有所帮助,弗兰克

    关于maven - 第谷 - 导入包上的 "Unsatisfied constraint",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12167774/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com