Eclipse Mars:ANT不再支持JDK 1.6了吗?

Pat*_*ick 3 java eclipse ant

当我使用JDK6在Eclipse Mars中调用ANT脚本(运行方式> Ant Build ...> JRE> Separate JRE)时,我收到以下错误消息:

出现问题:不支持小于1.7的JRE版本.

这只是一个bug还是故意的?我在Eclipse上找不到相应的错误报告.那么Eclipse为ANT放弃了Java 6支持?!

小智 5

我们使用自定义ANT插件修复了问题.它取代了Mars捆绑的ANT插件.原始插件不支持Java <7,因为它是用Java 7语法编写的,它检查了Java版本.很容易替换Java7语法以与> = 5兼容并删除Java 7检查.

两个语法"问题"是:

  • 钻石操作员,例如 List<MyObject> list = new ArrayList<>();
  • 尝试用资源,例如 try (InputStream stream = createInputStream()) { ...}

Diamond运营商的向后兼容性:

List<MyObject> list = new ArrayList<MyObject>();
Run Code Online (Sandbox Code Playgroud)

并尝试资源:

InputStream stream;

try
{
  ...
}
finally
{
   stream.close();
}
Run Code Online (Sandbox Code Playgroud)

在我们使用自定义插件替换捆绑插件后,可以像往常一样使用自定义JRE启动ANT任务.

可以使用Eclipse git存储库中的原始源创建自己的ANT插件:http://git.eclipse.org/c/platform/eclipse.platform.git/refs/tags(使用标签ID:I20150430-1445)或者使用我的预编译包:Eclipse Mars ANT插件,支持Java <7

安装很简单:

  • 下载zip存档*,将内容解压缩到<eclipse_dir>/plugins.
  • 用参数-clean启动eclipse(只有一次)
  • 通过外部工具配置为您的ANT任务配置JRE6 ...

有关该解决方案的更多详细信息,请参阅此博客文章.