用Java7编译Equinox3.8.2项目

用Java7编译Equinox3.8.2项目,java,eclipse,gradle,osgi,equinox,Java,Eclipse,Gradle,Osgi,Equinox,我需要使用Equinox 3.8.2为多个OSGi项目创建一个gradle构建系统。我们使用Java7 但现在我的Gradle脚本在使用ServiceTracker编译项目时失败: Activator.java:11: error: type ServiceTracker does not take parameters private static ServiceTracker<org.osgi.service.log.LogService, Object> logTracker

我需要使用Equinox 3.8.2为多个OSGi项目创建一个gradle构建系统。我们使用Java7

但现在我的Gradle脚本在使用ServiceTracker编译项目时失败:

Activator.java:11: error: type ServiceTracker does not take parameters
private static ServiceTracker<org.osgi.service.log.LogService, Object> logTracker = null;
Activator.java:11:错误:类型ServiceTracker不接受参数
私有静态ServiceTracker logTracker=null;
我已经找到了博客帖子


但是,当使用相同的osgi 3.8.2库手动构建项目时,eclipse以某种方式成功了。

eclipse使用eclipse编译器for Java(ECJ)进行编译。与JavaC7不同,它乐于在OSGi4.3.0JAR中的
-targetJSR14
类文件中使用通用签名信息。javac7明确选择忽略
-targetjsr14
类文件中的泛型信息,这就是为什么会出现该错误。如果要使用JavaC7编译,则需要使用已编译的OSGi 4.3.1库
-target 1.5