具有预览功能的 Maven Exec 插件
Posted
技术标签:
【中文标题】具有预览功能的 Maven Exec 插件【英文标题】:Maven Exec Plugin with Preview Features 【发布时间】:2020-07-10 08:48:37 【问题描述】:使用--enable-preview
编译您的Java 源代码很容易:
<!-- 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'
【问题讨论】:
在 Java-12 开发期间,我记得使用 shade 插件尝试过这个,创建一个 jar 并使用 java 命令行执行,列出的步骤under this Q&A。 【参考方案1】:问题是 exec:java 在同一个 maven java 进程中运行,默认情况下它不是以 --enable-preview
启动的。
您可以改为切换到 exec:exec
,但仍然使用 exec:java 的一种方法是创建一个包含 --enable-preview
的 .mvn/jvm.config
文件。您可以将其放在项目的根目录中并检查到 git。或者创建一个 MVN_OPS 环境变量。
参考:https://maven.apache.org/configure.html
【讨论】:
以上是关于具有预览功能的 Maven Exec 插件的主要内容,如果未能解决你的问题,请参考以下文章
带有 Java 14 的 IntelliJ 2020.1 中的“记录”预览功能在 Maven“安装”期间因编译器错误而失败,但以其他方式运行