【问题标题】:IntelliJ IDEA 11: Maven support not workingIntelliJ IDEA 11:Maven 支持不起作用
【发布时间】:2012-01-01 21:56:37
【问题描述】:

我在 Mac OS X 10.6.8 (Snow Leopard) 上使用 IntelliJ IDEA 11.0.1(社区版)进行 Java 和 Scala 编程。今天我想第一次接触 Maven,因为我还没有任何构建工具的经验。但不知何故,IDEA 中的 Maven 支持似乎根本不起作用。

一些事实:

  • Maven 3.0.3 已通过/Applications/MacPorts/share/java/maven3 中的 MacPorts 安装
  • Maven 插件已在插件管理器中激活
  • 环境变量 M2 和 M2_HOME 在~/.MacOSX/environment.plist 中设置
    • M2:/Applications/MacPorts/share/java/maven3/bin
    • M2_HOME:/Applications/MacPorts/share/java/maven3
  • IDEA 中的 Maven 设置设置为默认值
  • Maven 可以从命令行调用,没有任何问题并且工作正常

如果我尝试通过File > Open Project 打开任何 pom.xml 文件,则没有任何反应。有时会打开一个带有进度条的小窗口一两秒,显然是在扫描一些文件,但始终没有任何效果。

如果我尝试通过File > New Project > Import Project from External Model 导入现有的 Maven 项目,我只能进入可以定义项目根目录和几个 Maven 设置的窗口。当我点击Next 时,什么也没有发生。

如果我在 Maven 项目上执行 Maven 目标 mvn idea:idea,我可以在 IDEA 中打开它。打开后,IDEA右上角会出现一个绿色的小窗口,上面写着Maven projects need to be imported,有两个选项:Import changesEnable Auto-Import。我选择哪一个并不重要,因为似乎什么都没有发生。当我打开 IDEA 右侧的 Maven 项目面板时,它仍然显示There are no Maven projects to display。如果我尝试从这个面板中添加一个 Maven 项目,要么什么都没有发生,要么 IDEA 甚至完全拒绝在 Select Path 窗口中打开一个 pom.xml 文件,因为 OK 按钮是灰色的。

我检查了Help > Reveal Log in Finder 下的日志文件,它们指出了一些与 Maven 相关的重复异常。这里有两个例子:

2012-01-01 22:42:26,736 [3469999]  ERROR - #org.jetbrains.idea.maven - IntelliJ IDEA 11.0.1 Build #IU-111.167 
2012-01-01 22:42:26,736 [3469999]  ERROR - #org.jetbrains.idea.maven - JDK: 1.6.0_29 
2012-01-01 22:42:26,736 [3469999]  ERROR - #org.jetbrains.idea.maven - VM: Java HotSpot(TM) 64-Bit Server VM 
2012-01-01 22:42:26,736 [3469999]  ERROR - #org.jetbrains.idea.maven - Vendor: Apple Inc. 
2012-01-01 22:42:26,736 [3469999]  ERROR - #org.jetbrains.idea.maven - OS: Mac OS X 
2012-01-01 22:42:26,736 [3469999]  ERROR - #org.jetbrains.idea.maven - Last Action: OpenProject 
2012-01-01 22:42:26,736 [3469999]  ERROR - #org.jetbrains.idea.maven - Original exception:  
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
java.io.InvalidClassException: gnu.trove.TObjectHash; local class incompatible: stream classdesc serialVersionUID = 1980179659817003644, local class serialVersionUID = -3461112548087185871
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:334)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:178)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:132)
at $Proxy80.applyProfiles(Unknown Source)
at sun.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.execution.rmi.RemoteUtil$3$1$1.compute(RemoteUtil.java:94)
at com.intellij.execution.rmi.RemoteUtil.executeWithClassLoader(RemoteUtil.java:132)
at com.intellij.execution.rmi.RemoteUtil$3$1.invoke(RemoteUtil.java:91)
at $Proxy80.applyProfiles(Unknown Source)
at org.jetbrains.idea.maven.server.MavenServerManager$8.execute(MavenServerManager.java:316)
at org.jetbrains.idea.maven.server.MavenServerManager$8.execute(MavenServerManager.java:313)
at org.jetbrains.idea.maven.server.RemoteObjectWrapper.perform(RemoteObjectWrapper.java:76)
at org.jetbrains.idea.maven.server.MavenServerManager.applyProfiles(MavenServerManager.java:313)
at org.jetbrains.idea.maven.project.MavenProjectReader.applyProfiles(MavenProjectReader.java:357)
at org.jetbrains.idea.maven.project.MavenProjectReader.doReadProjectModel(MavenProjectReader.java:90)
at org.jetbrains.idea.maven.project.MavenProjectReader.readProject(MavenProjectReader.java:53)
at org.jetbrains.idea.maven.project.MavenProject.read(MavenProject.java:389)
at org.jetbrains.idea.maven.project.MavenProjectsTree.doUpdate(MavenProjectsTree.java:537)
at org.jetbrains.idea.maven.project.MavenProjectsTree.doAdd(MavenProjectsTree.java:484)
at org.jetbrains.idea.maven.project.MavenProjectsTree.update(MavenProjectsTree.java:445)
at org.jetbrains.idea.maven.project.MavenProjectsTree.updateAll(MavenProjectsTree.java:416)
at org.jetbrains.idea.maven.project.MavenProjectsProcessorReadingTask.perform(MavenProjectsProcessorReadingTask.java:60)
at org.jetbrains.idea.maven.project.MavenProjectsProcessor.doProcessPendingTasks(MavenProjectsProcessor.java:131)
at org.jetbrains.idea.maven.project.MavenProjectsProcessor.access$100(MavenProjectsProcessor.java:28)
at org.jetbrains.idea.maven.project.MavenProjectsProcessor$2.run(MavenProjectsProcessor.java:107)
at org.jetbrains.idea.maven.utils.MavenUtil$9.run(MavenUtil.java:396)
at com.intellij.openapi.application.impl.ApplicationImpl$6.run(ApplicationImpl.java:422)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
at com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:137)
Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
java.io.InvalidClassException: gnu.trove.TObjectHash; local class incompatible: stream classdesc serialVersionUID = 1980179659817003644, local class serialVersionUID = -3461112548087185871
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:291)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.io.InvalidClassException: gnu.trove.TObjectHash; local class incompatible: stream classdesc serialVersionUID = 1980179659817003644, local class serialVersionUID = -3461112548087185871
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1582)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1582)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:306)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:288)

下一步:

2012-01-01 21:45:33,856 [  57119]   INFO - api.vfs.impl.local.FileWatcher - 1 paths checked, 0 mapped, 44 mks 
2012-01-01 21:46:16,240 [  99503]   INFO - api.vfs.impl.local.FileWatcher - 7 paths checked, 0 mapped, 449 mks 
2012-01-01 21:47:17,728 [ 160991]   INFO - s.impl.stores.FileBasedStorage - Document was not loaded for $OPTIONS$/dataSources.xml file is null 
2012-01-01 21:47:17,728 [ 160991]   INFO - .impl.stores.XmlElementStorage - Document was not loaded for $OPTIONS$/dataSources.xml 
2012-01-01 21:47:17,763 [ 161026]   INFO - s.impl.stores.FileBasedStorage - Document was not loaded for $PROJECT_CONFIG_DIR$/dataSources.xml file is null 
2012-01-01 21:47:17,763 [ 161026]   INFO - .impl.stores.XmlElementStorage - Document was not loaded for $PROJECT_CONFIG_DIR$/dataSources.xml 
2012-01-01 21:47:17,867 [ 161130]   INFO - api.vfs.impl.local.FileWatcher - 2 paths checked, 0 mapped, 153 mks 
2012-01-01 21:47:34,669 [ 177932]   INFO - s.impl.stores.FileBasedStorage - Document was not loaded for $APP_CONFIG$/print.xml file is null 
2012-01-01 21:47:34,669 [ 177932]   INFO - .impl.stores.XmlElementStorage - Document was not loaded for $APP_CONFIG$/print.xml 
2012-01-01 21:47:56,928 [ 200191]  ERROR - com.intellij.ide.IdeEventQueue - Error during dispatching of java.awt.event.InvocationEvent[INVOCATION_DEFAULT,runnable=com.intellij.ui.mac.MacFileChooserDialo gImpl$4$1@5f2d6fa7,notifier=null,catchExceptions=false,when=1325450876871] on apple.awt.CToolkit@4ad70ab0 
java.lang.RuntimeException: Cannot reconnect.
at org.jetbrains.idea.maven.server.RemoteObjectWrapper.perform(RemoteObjectWrapper.java:82)
at org.jetbrains.idea.maven.server.MavenServerManager.applyProfiles(MavenServerManager.java:313)
at org.jetbrains.idea.maven.project.MavenProjectReader.applyProfiles(MavenProjectReader.java:357)
at org.jetbrains.idea.maven.project.MavenProjectReader.doReadProjectModel(MavenProjectReader.java:90)
at org.jetbrains.idea.maven.project.MavenProjectReader.readProject(MavenProjectReader.java:53)
at org.jetbrains.idea.maven.project.MavenProject.read(MavenProject.java:389)
at org.jetbrains.idea.maven.project.MavenProjectsTree.doUpdate(MavenProjectsTree.java:537)
at org.jetbrains.idea.maven.project.MavenProjectsTree.doAdd(MavenProjectsTree.java:484)
at org.jetbrains.idea.maven.project.MavenProjectsTree.update(MavenProjectsTree.java:445)
at org.jetbrains.idea.maven.project.MavenProjectsTree.updateAll(MavenProjectsTree.java:416)
at org.jetbrains.idea.maven.wizards.MavenProjectBuilder.readMavenProjectTree(MavenProjectBuilder.java:198)
at org.jetbrains.idea.maven.wizards.MavenProjectBuilder.access$800(MavenProjectBuilder.java:44)
at org.jetbrains.idea.maven.wizards.MavenProjectBuilder$3.run(MavenProjectBuilder.java:179)
at org.jetbrains.idea.maven.utils.MavenUtil$8.run(MavenUtil.java:364)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:457)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$5.run(ProgressManagerImpl.java:276)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:206)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:169)
at com.intellij.openapi.application.impl.ApplicationImpl$8$1.run(ApplicationImpl.java:629)
at com.intellij.openapi.application.impl.ApplicationImpl$6.run(ApplicationImpl.java:422)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
at com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:137)
Caused by: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
java.io.InvalidClassException: gnu.trove.TObjectHash; local class incompatible: stream classdesc serialVersionUID = 1980179659817003644, local class serialVersionUID = -3461112548087185871
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:334)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:178)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:132)
at $Proxy80.applyProfiles(Unknown Source)
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.execution.rmi.RemoteUtil$3$1$1.compute(RemoteUtil.java:94)
at com.intellij.execution.rmi.RemoteUtil.executeWithClassLoader(RemoteUtil.java:132)
at com.intellij.execution.rmi.RemoteUtil$3$1.invoke(RemoteUtil.java:91)
at $Proxy80.applyProfiles(Unknown Source)
at org.jetbrains.idea.maven.server.MavenServerManager$8.execute(MavenServerManager.java:316)
at org.jetbrains.idea.maven.server.MavenServerManager$8.execute(MavenServerManager.java:313)
at org.jetbrains.idea.maven.server.RemoteObjectWrapper.perform(RemoteObjectWrapper.java:76)

谁能帮我解决这个问题?

【问题讨论】:

    标签: java maven intellij-idea


    【解决方案1】:

    尝试设置M2_HOME环境变量as described in the FAQ。如果没有帮助,请检查 idea.log 是否有异常 (Help | Reveal Log in Finder)。如果日志中有任何相关异常,则为worth filing a bug

    【讨论】:

    • 感谢您的快速回复。我已经按照 OS X 10.6 及更高版本的说明设置了环境变量,所以这应该不是问题。我检查了日志文件,发现了几个提到 Maven 的异常。我已将其中两个附加到我的初始帖子中。这些对你有帮助吗?
    • 我刚刚发布了bug report on YouTrack,但有更详细的例外情况。我希望它有助于尽快修复这个烦人的错误。
    猜你喜欢
    • 2021-06-06
    • 2021-12-25
    • 2011-07-31
    • 1970-01-01
    • 2017-08-27
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    相关资源
    最近更新 更多