当我使用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
安装很简单:
有关该解决方案的更多详细信息,请参阅此博客文章.