能告诉我是否必须在我的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吗?
能告诉我是否必须指定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等旧版本.