与此插件的名称相反,Compiler Plugin 不会自行编译项目的源代码。为了编译,编译器插件使用另一个类来编译它们。参数compilerId确定将使用哪个类。目前,Compiler Plugin 与带有 artifactId plexus-compiler-javac的javac编译器工件捆绑在一起,可以看作是 Compiler Plugin 的 POM 中声明的依赖项之一。
Plexus 编译器组件在 groupId org.codehaus.plexus下还有一些其他可用的编译器 ID :
要使用任何非 javac 编译器,您需要在 Compiler Plugin 运行时使工件在类路径中可用。这可以通过在项目的pom.xml中声明插件时添加依赖项来实现。下面的例子展示了如何使用csharp编译器:
<project>
[...]
<build>
[...]
<plugins>
[...]
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<compilerId>csharp</compilerId>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-csharp</artifactId>
<version>1.6</version>
</dependency>
</dependencies>
</plugin>
[...]
</project>