2015-08-20 35 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