首页 > 解决方案 > 在“org.eclipse.pde.build”包中添加“pdebuild.jar”到编译类路径?

问题描述

当我查看位于 Maven 中心以下坐标处的罐子时:

<dependency>
    <groupId>org.eclipse.pde</groupId>
    <artifactId>org.eclipse.pde.build</artifactId>
    <version>3.11.0</version>
</dependency>

我看到有线内容。里面没有*.class文件。

'org.eclipse.pde.build-3.11.0.jar' 的内容

只有META-INF/MANIFEST.MF似乎是相关的和正确的。

对应源码: https ://git.eclipse.org/c/pde/eclipse.pde.build.git/tree/org.eclipse.pde.build/META-INF/MANIFEST.MF

当我尝试在我的代码中使用其 maven 中心坐标引用的 jar 时,Gradle 构建失败并出现预期的结果:

error: cannot access org.eclipse.pde.internal.build.IBuildPropertiesConstants

这是有道理的,因为该类位于罐子pdebuild.jar内。org.eclipse.pde:org.eclipse.pde.build:3.11.0

我猜 MANIFEST 中的这一行告诉 Eclipse 编译器也要查看 jar 中的 jar:

Bundle-ClassPath: pdebuild.jar

如果我将pdebuild.jar(从 Maven 中央获取的 jar 中手动提取)放在类路径中:

从“org.eclipse.pde.build-3.11.0.jar”中提取的“pdebuild.jar”的内容

然后我就可以编译了。


如何让 Gradle 知道这个Bundle-ClassPathOSGi 指令?

我发现了这个相关的问题:Gradle: Properly build classpath from OSGI dependency's MANIFEST.MF

从答案来看,这似乎是不可能的

标签: javaeclipsegradleosgieclipse-pde

解决方案


推荐阅读