eclipse冻结导入大型maven项目

时间:2011-03-07 11:12:07

标签: eclipse maven-2 m2eclipse

我有一个相对较大的多模块maven项目和导入过程冻结。使用m2eclipse我尝试导入它。首先它执行一些操作:打开连接,下载数据(我可以在防火墙日志中看到它),但过了一段时间它会冻结。我通过StackTrace工具转储了堆栈跟踪,发现负责解析依赖关系的线程处于等待状态。在这种状态下,它已经停留了很长时间(大约十分钟)而没有任何变化,所以它似乎是一个僵局。

  

"工人-3" prio = 6 tid = 0x0000000008048800 nid = 0x7bc in Object.wait()[0x000000000d3be000]      java.lang.Thread.State:WAITING(在对象监视器上)       at java.lang.Object.wait(Native Method)        - 等待< 0x00000000fabdfc38> (a org.jboss.netty.channel.DefaultChannelFuture)       在java.lang.Object.wait(Object.java:485)       在org.jboss.netty.channel.DefaultChannelFuture.awaitUninterruptibly(DefaultChannelFuture.java:211)        - 已锁定< 0x00000000fabdfc38> (a org.jboss.netty.channel.DefaultChannelFuture)       在com.ning.http.client.providers.netty.NettyAsyncHttpProvider.doConnect(NettyAsyncHttpProvider.java:751)       在com.ning.http.client.providers.netty.NettyAsyncHttpProvider.execute(NettyAsyncHttpProvider.java:647)       在com.ning.http.client.AsyncHttpClient.executeRequest(AsyncHttpClient.java:476)       at org.sonatype.aether.connector.async.AsyncRepositoryConnector $ GetTask.run(AsyncRepositoryConnector.java:758)       at org.sonatype.aether.connector.async.AsyncRepositoryConnector.get(AsyncRepositoryConnector.java:267)       at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:438)       at org.sonatype.aether.impl.internal.DefaultRepositorySystem.resolveArtifacts(DefaultRepositorySystem.java:304)       at org.sonatype.aether.impl.internal.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:334)       在org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:150)       在org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:159)       在org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:98)       在org.maven.ide.eclipse.internal.embedder.MavenImpl.readProject(MavenImpl.java:467)       在org.maven.ide.eclipse.internal.project.registry.DefaultMavenDependencyResolver.resolveProjectDependencies(DefaultMavenDependencyResolver.java:43)       在org.maven.ide.eclipse.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:445)       在org.maven.ide.eclipse.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:361)       在org.maven.ide.eclipse.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:344)       在org.maven.ide.eclipse.project.MavenProjectManager.refresh(MavenProjectManager.java:65)       在org.maven.ide.eclipse.internal.project.ProjectConfigurationManager.configureNewMavenProject(ProjectConfigurationManager.java:209)       在org.maven.ide.eclipse.internal.project.ProjectConfigurationManager.importProjects(ProjectConfigurationManager.java:146)       在org.maven.ide.eclipse.wizards.MavenImportWizard $ 1.runInWorkspace(MavenImportWizard.java:94)       在org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)       在org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

该怎么办?

3 个答案:

答案 0 :(得分:1)

解决方法是在settings.xml中为存储库服务器配置超时参数。首先检查eclipse ide中指定了哪个maven配置。

如何配置参数如下所示:

How to get maven to timeout earlier while downloading dependencies?

答案 1 :(得分:0)

我找到了问题的根源。它不是eclipse,也不是m2eclipse。这是由于代理服务器配置不佳,所以它创建了连接并且没有传输数据,m2eclipse正在等待它。

答案 2 :(得分:0)

它适用于我在控制台上运行mvn install然后返回Eclipse,右键单击主项目 - > Maven - >更新项目...... 我在当地的maven repo中也有一些腐败的jar文件。只需删除它们,让maven再次下载它们。