在Maven构建中使用Eclipse Java Compiler(ecj)

Eclipse使用它自己的编译器(ECJ)来编译Java代码。调试使用Eclipse编译的程序更加容易,因为可以立即应用简单的代码更改(通过热代码替换)。

另一方面,Maven使用(默认情况下)oracle JDK,它会生成不同的字节码,从而防止在Eclipse调试会话中进行热代码替换。

因此,如果我打算调试程序,我想在我的maven构建中使用Eclipse ECJ编译器。对我来说,便捷的方式是使用“ ecj”配置文件:

  • 编译发布

    $ mvn package

  • 编译快照并启用热代码替换

    $ mvn -P ecj package

此外,可以在settings.xml甚至Eclipse项目属性中指定概要文件激活。

我的问题是:

  1. 这是正确的方法吗?
  2. 如何配置?
  3. 可以使用Maven工具链吗?

回答:

可以更改javac.NET使用的默认编译器maven-compiler-

plugin。Eclipse编译器捆绑在工件中,plexus-compiler-

eclipse并通过设置eclipse为的compilerId属性来声明它maven-compiler-plugin

如果要为自定义配置文件激活此更改,则可以具有以下配置:

<profile>

<id>ecj</id>

<build>

<plugins>

<plugin>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.6.0</version>

<configuration>

<compilerId>eclipse</compilerId>

</configuration>

<dependencies>

<dependency>

<groupId>org.codehaus.plexus</groupId>

<artifactId>plexus-compiler-eclipse</artifactId>

<version>2.8.1</version>

</dependency>

</dependencies>

</plugin>

</plugins>

</build>

</profile>

该插件在plexus-compilerGitHub存储库中维护。版本2.8.1 使用JDT的3.11.1.v20150902-1521,尽管您可以通过org.eclipse.tycho:org.eclipse.jdt.core在Plexus编译器依赖项之后添加依赖项来使用自己的版本。

以上是 在Maven构建中使用Eclipse Java Compiler(ecj) 的全部内容, 来源链接: utcz.com/qa/429394.html

回到顶部