2

使用以下代码编译 Java 源代码很容易--enable-preview

<!-- Enable preview features -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
        <release>15</release>
        <compilerArgs>--enable-preview</compilerArgs>
    </configuration>
</plugin>

但是你怎么能跑exec:java呢?使用

<!-- Exec plugin.. run with `mvn exec:java` -->
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.6.0</version>
    <configuration>
        <mainClass>${mainClass}</mainClass>
        <commandlineArgs>--enable-preview</commandlineArgs>
        <arguments>
            <argument>--enable-preview</argument>
        </arguments>
        </systemProperties>
    </configuration>
</plugin>

仍然导致以下错误:

An exception occured while executing the Java class. 
Preview features are not enabled for Main (class file version 59.65535). 
Try running with '--enable-preview'
4

1 回答 1

2

问题是 exec:java 在同一个 maven java 进程中运行,默认情况下它不是以--enable-preview.

您可以改为切换到exec:exec,但仍然使用 exec:java 的一种方法是创建一个.mvn/jvm.config包含--enable-preview. 您可以将其放在项目的根目录中并检查到 git。或者创建一个 MVN_OPS 环境变量。

参考:https ://maven.apache.org/configure.html

于 2020-03-30T01:23:58.760 回答