运行Maven时出错

运行Maven时出错,maven,Maven,我试图构建一个maven(最新版本3.1.1)项目,由于某种原因,当我运行任何maven命令(如maven clean或maven compile)时,我会出现以下错误: Exception in thread "main" java.lang.IllegalAccessError: tried to access method org.slf4j.LoggerFactory.reset()V from class org.slf4j.MavenSlf4jFriend at org.slf4j.

我试图构建一个maven(最新版本3.1.1)项目,由于某种原因,当我运行任何maven命令(如maven clean或maven compile)时,我会出现以下错误:

Exception in thread "main" java.lang.IllegalAccessError: tried to access method org.slf4j.LoggerFactory.reset()V from class org.slf4j.MavenSlf4jFriend
at org.slf4j.MavenSlf4jFriend.reset(MavenSlf4jFriend.java:33)
at org.apache.maven.cli.logging.impl.Slf4jSimpleConfiguration.activate(Slf4jSimpleConfiguration.java:60)
at org.apache.maven.cli.MavenCli.logging(MavenCli.java:348)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:205)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:158)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
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)
at org.codehaus.classworlds.Launcher.main(Launcher.java:46)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

使用Brew安装OS X 10.9上的Maven也有同样的问题。事实证明,Maven将自己的lib(包括
slf4j
)引入了
/usr/local/ceral/Maven/3.2.2/libexec/lib
)。然而,我在
/Library/Java/Extensions
的类路径中已经有了另一个版本的
slf4j


解决方案:从OSX默认类路径中删除slf4j,以便Maven可以使用其版本而不会发生冲突。

尝试更改Java JDK版本并重新安装Maven。这对我有用。即使是我也面临同样的错误,但找不到有效的解决办法。我已经将JDK版本1.8改为JDK 9.0.1,并重新安装了Maven,它工作得很好。

不过最近Eclipse也遇到了同样的问题。不确定问题是什么。该错误表示类路径上有多个版本不同的slf4j库。尝试在maven项目中选择较新的版本。@Reddy这里是terminal@Reddy的相同错误,显然不是项目依赖性问题。当我转到终端时,我看到@Reddy I从3.1.1切换到3.0.5,错误消失了。不知道为什么。谢谢