如何使用Java编译器API的Maven编译JUnit测试?

时间:2011-10-12 12:07:01

标签: maven junit classpath javac

使用Java Compiler API从JUn​​it测试运行Java编译器非常简单。测试检查我是否可以使用临时类加载器加载新代码并且清理工作等等

我的问题是使用Maven编译和/或运行测试。

如果我使用依赖项添加java编译器,我必须将范围设置为test。如果我这样做,那么在编译测试时tools.jar将被添加到类路径中,这意味着类路径上将有两个 Java编译器。

范围runtime也是如此,但这也会将Java编译器添加到我的工件中,使其泄漏。所有其他范围甚至更糟。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您确定需要java编译器依赖吗?没有任何特殊(编译器)依赖,Java Compiler API对我有用(因为它是JDK的一部分)。

您可以使用getTask final List<String> options = new ArrayList<String>(); options.add("-target"); options.add("1.3"); options.add("-source"); options.add("1.3"); 参数设置目标VM版本,例如:

{{1}}