【问题标题】:How to prevent NetBeans "Supported source version" build warnings for Java 8 app using annotations?如何使用注释防止 Java 8 应用程序的 NetBeans“支持的源版本”构建警告?
【发布时间】:2016-02-06 21:00:19
【问题描述】:

如何防止 NetBeans 生成大量与此类似的构建警告? 警告:注释处理器'org.netbeans.modules.openide.util.NbBundleProcessor'支持的源版本'RELEASE_7'低于-source'1.8'

最终,我想在没有构建警告的情况下构建我的项目。如果有人有可行的方法,我很想听听。

没有已知的编译器标志来防止这些警告,尽管多年来人们一直在抱怨它。我尝试了变通方法但没有成功,而且我研究了太多的技术博客(这里有一些更有用的): JDK-7184902:“支持的源版本...”警告应该是 -Xlint 感知的 - http://bugs.java.com/view_bug.do?bug_id=7184902 JDK-8037955:“支持的源版本...”警告应该是 -Xlint 感知的 - http://bugs.java.com/view_bug.do?bug_id=8037955 错误 210286 - 使用 -source 7 时来自注释处理器的警告 - https://netbeans.org/bugzilla/show_bug.cgi?id=210286 注释处理器 org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor 支持的源版本 RELEASE_6 低于 source1.7 - Supported source version RELEASE_6 from annotation processor org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor less than source1.7

到目前为止,最好的办法是尝试实现 AntLogger(使用 Bug 210286 文章中提到的方法以及他们为位于 https://netbeans.org/bugzilla/attachment.cgi?id=122191 的 SuppressionFilterAntLogger.java 提供的源代码)。

添加对 Ant 模块的依赖不起作用。显然,Ant 模块被认为是“排除模块”,所以我不能让 NetBeans 为我添加带有小红灯泡图标的导入语句。以下是编译项目所需的内容(经过大量研究和实验来解决这个问题): 右键单击模块应用程序的根节点并选择 Project Properties,然后单击其 Libraries 选项卡。在 Platform Modules 列表中,滚动到以下每个列表条目并选中它们的 Included 复选框。每当我们选择一个平台模块时,我们都会收到一些错误消息(位于对话框窗口的底部),关于“但这被排除在外”,因此我们寻找该模块并继续前进,直到它包含所需的所有内容。 选中/启用以下列表条目的包含复选框: 扩展|蚂蚁 延长 | Java 选项 想法 |导航器 API 想法 |项目 API 想法 |项目界面 想法 |项目界面 API 想法 |项目索引桥 想法 | XML 工具 API javafx(即选择 javafx 集群中的所有条目) 平台 |执行 API 取消选中/禁用以下列表条目的包含复选框: 平台 | JavaFX 包装器 现在我们可以按下 Resolve 按钮(之前已禁用)。 重新启动 NetBeans IDE(因为它不会完全使用我们刚刚在没有完全重新启动的情况下所做的更改)。

在这一切之后,我终于成功编译了 SuppressionFilterAntLogger 类...但是 NetBeans 没有触发它的任何方法(而且我仍然收到 RELEASE_7 构建警告)!

我在 Microsoft Windows 7 Professional 上使用 Java 8u66 和 NetBeans IDE 8.0.2。我正在使用 NetBeans 平台模块应用程序试验此 AntLogger,但 Java 构建警告出现在各种项目中。

【问题讨论】:

    标签: java netbeans annotations compiler-warnings netbeans-platform


    【解决方案1】:

    如果您实际上并未使用 JDK 8 功能,例如 lambdas。您可以使用最新的 JDK,但仍将属性源中的源级别设置为 1.7。您的代码可以使用 1.8 中的类,但不能使用 lambda 等。

    【讨论】:

    • 我正在使用 Java 8,包括最近的 JavaFX 功能,因此不能使用 Java 7 进行编译。不过感谢您的建议(某些项目可能可以使用这种方法)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多