java - 如何在 Tycho 构建中设置 Java 编译器兼容性?

我正在使用 Tycho 构建 RCP 应用程序。该构建在 Windows Runner 上的 Gitlab CI 脚本中运行。由于其中一个插件中的某些组件,该应用程序设置为在 Java 8 级别运行。运行器使用 OpenJDK 12。目前,这会导致编译器错误。

如何为build设置源编译器级别和目标编译器级别?

我尝试在父 pom 中设置以下内容:

<properties>
    <tycho.version>1.5.1</tycho.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

还有

<plugins>
    <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-compiler-plugin</artifactId>
        <version>${tycho.version}</version>
        <configuration>
            <compilerVersion>1.8</compilerVersion>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>
</plugins>

但我仍然遇到编译器错误,例如 JAXBElement cannot be resolved to a type

最佳答案

您必须在 MANIFEST.MF 文件的概览选项卡上设置执行环境。 Tycho 将从那里推断 Maven 属性。

...
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
...

https://stackoverflow.com/questions/62537685/

相关文章:

python - Pandas 的 Mypy/typeshed stub

firebase - 使用 Firebase 通过 OAuth2 创建登录名时指定 UserId 格

c# - 如何以编程方式授予虚拟用户对文件夹(或文件)的权限

c# - SqlBulkTools - 更新

ios - Safari 或 IOS 中视频的 aws-sdk getSignedUrl 不起作用

node.js - 与 Prisma 2 相关的多个过滤器

java - 如何获取 Azure blob 下载中的 blob 下载进度

amazon-web-services - 由于 Amplify 上的身份验证 token 过期较短

postgresql - 在typeorm中过滤多对多关系

python - 如何防止vscode/ms-python清除测试结果?