2015-08-20 33 views
1

我有一个java项目,需要10秒钟后关闭maven做它的事情。即使做一个简单的mvn清理需要超过10秒。它似乎只是悬挂。maven完成后奇怪的减速

$ time mvn clean 
[INFO] Scanning for projects... 
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for io.inbot:inbot-java:jar:1.0 
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 35, column 21 
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-surefire-plugin is missing. @ line 45, column 12 
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-jar-plugin is missing. @ line 31, column 21 
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-javadoc-plugin is missing. @ line 144, column 21 
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build. 
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects. 
[WARNING] 
[INFO] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building inbot-java 1.0 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ inbot-java --- 
[INFO] Deleting /Users/jilles/git/linko/inbot-java/target 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 0.373 s 
[INFO] Finished at: 2015-08-20T12:42:13+02:00 
[INFO] Final Memory: 24M/1963M 
[INFO] ------------------------------------------------------------------------ 
[1]+ Done     mvn clean 

real 0m12.603s 
user 0m14.689s 
sys 0m0.303s 

我试图发送一个kill -QUIT的过程中看到它实际上是做什么,但它似乎不再能够在它挂起时间转储堆栈跟踪。这意味着可能有一些关闭挂钩或终结仍在运行,但vm不再响应。

我使用这个Maven版本:

mvn --version 
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T13:57:37+02:00) 
Maven home: /usr/local/maven 
Java version: 1.8.0_31, vendor: Oracle Corporation 
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "mac os x", version: "10.10.4", arch: "x86_64", family: "mac" 

在这种环境

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home 
MAVEN_OPTS='-Xms2048M -Xmx2048M' 

完整的命令行通过PS -h

24547 ttys000 0:05.57 /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/bin/java -Xms2048M -Xmx2048M -classpath /usr/local/maven/boot/plexus-classworlds-2.5.2.jar -Dclassworlds.conf=/usr/local/maven/bin/m2.conf -Dmaven.home=/usr/local/maven -Dmaven.multiModuleProjectDirectory=/Users/jilles/git/linko/inbot-java org.codehaus.plexus.classworlds.launcher.Launcher clean 

我很想知道报道发生了什么,甚至更好的解决方法。

编辑:找到根本原因:ch.raffael.doclets.pegdown.PegdownDoclet;看到下面的答案

+0

你可以试试这个离线查看Maven是否挂在一个HTTP请求出于任何原因吗? – cahen

+0

添加-o似乎没有解决问题 –

回答

1

做了明显的事情,最终确定我们用于javadoc插件的doclet是根本原因。只要我评论这一点,问题就会消失。这就产生了一个问题,为什么这甚至会在mvn clean上激活。

<plugin> 
       <artifactId>maven-javadoc-plugin</artifactId> 
       <configuration> 
        <doclet>ch.raffael.doclets.pegdown.PegdownDoclet</doclet> 
        <docletArtifact> 
         <groupId>ch.raffael.pegdown-doclet</groupId> 
         <artifactId>pegdown-doclet</artifactId> 
         <version>1.1</version> 
        </docletArtifact> 
        <useStandardDocletOptions>true</useStandardDocletOptions> 
       </configuration> 
      </plugin> 
+0

IIRC,它应该取决于插件配置为附加到哪个目标(或阶段,实际上不记得)。不过,我无法帮助你进一步研究。 – watery