什么版本的 Maven 与 Java 6 兼容?

What Version of Maven is Compatible with Java 6?

我必须在一个需要 java 6 到 运行 的旧项目中工作,因为在未来的版本中已经删除了对折旧太阳 类 的引用。作为该过程的一部分,我将系统路径中的 jdk 从 8 更改为指向 java 6 jdk。这样做之后我得到:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access[=11=]0(URLClassLoader.java:58)
    at java.net.URLClassLoader.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:401)
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:254)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
    at org.codehaus.plexus.classworlds.launcher.Launcher.getMainClass(Launcher.java:144)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:266)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 

这与 and Exception in thread "main" java.lang.UnsupportedClassVersionError: a (Unsupported major.minor version 51.0) 类似,但我不希望升级,我希望找到与 java 兼容的 maven 版本 6. 关于哪个版本的任何想法是兼容的,我可以从哪里 download/install mac?

根据the Maven release history page,最后一个与 JDK1.6 兼容的 Maven 版本是 3.2.5。

请注意,最好继续使用较新的 Maven 版本(并在系统路径中保留 Java 8 作为默认值),并告诉 Maven 它正在构建的项目应该将源设置为 1.6 进行编译 -有关详细信息,请参阅 source and target documentation。恢复到旧的 Maven 将删除新版本的错误修复/增强。

如果您遇到问题需要使用 JDK 6 构建,但您希望使用 运行 Maven 和 JDK 7(因为您喜欢使用 Maven 3.3+),您应该考虑使用 toolchain 这使得它们彼此独立。