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

标签 java maven tycho

我正在使用 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
...

关于java - 如何在 Tycho 构建中设置 Java 编译器兼容性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62537685/

相关文章:

maven - 在 IntelliJ 中使用 Maven 的 --also-make 选项

java - eclipse tycho + java 11 = 未知的 OSGi 执行环境 : 'JavaSE-11'

java - 在 Tycho 项目中为非 OSGi JUnit 测试添加仅测试依赖项

java - Android 演示模型 : how to wrap Model in Presentation Model?

java - 执行目标 wildfly swarm 插件时出现问题,API 不兼容,java.lang.AbstractMethodError

java - 如何在java中打开终端窗口并执行客户程序

java - 在 Windows 批处理文件中从 Maven 运行并行 Cucumber 测试时出现问题

eclipse - osgi.os 属性的 "win32"与 "win64"

java - 如何序列化 float 组的ArrayList

java - 使用java将字符串保存为csv中的blob对象