maven编译器插件2.0.2

hak*_*ish 4 java maven

能告诉我是否必须在我的POM中指定maven-compiler-plugin详细信息:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
            <source>1.5</source>
            <target>1.5</target>
            </configuration>
Run Code Online (Sandbox Code Playgroud)

如果是,为什么如此,我明白它的作用,但不确定为什么需要它?还没有其他方法可以在maven中调用javac吗?

Nis*_*ant 7

能告诉我是否必须指定maven-compiler-plugin的详细信息?

不.但它会使用Java 1.3或者石器时代的东西进行编译.

如果是,为什么如此,我明白它的作用,但不确定为什么需要它?

答案是不'.但这就是原因.您确定不希望在新代码上使用Java 1.3进行编译.你想要Java 5中的所有新功能.不是吗?:)所以,你必须在已经混乱的POM中添加这些额外的行.

还没有其他方法可以在maven中调用javac吗?

没有.但是mvn compile,即使你没有这个块,任何其他命令也会起作用.但是,如果您的源代码具有Java 5中的任何高级内容,但在先前版本中没有,则编译将失败.


编辑1

当我有JDK 5时,它如何编译为1.3?

好吧,有一个选项可以在Java编译器中设置.请参阅此处的Java编译器选项:http://docs.oracle.com/javase/1.5.0/docs/tooldocs/windows/javac.html

它说你可以设置source等旧版本.