我有一个相对较大的多模块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)
该怎么办?
答案 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再次下载它们。