2013-11-20 75 views
3

我的maven版本在maven-jar-plugin上停滯不前。它需要10-15秒的時間來建立一個正常大小的jar文件。使用jar工具或使用java.util.jar類直接創建jar文件不是問題。Ubuntu上maven jar插件性能不佳

檢測到isUp2Date爲false並列出jar條目之間的構建停頓。

[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-jar-plugin:2.3.2:jar' with basic configurator --> 
[DEBUG] (f) classesDirectory = /home/.../repos/.../zz-test-zip/target/classes 
[DEBUG] (f) defaultManifestFile = /home/.../repos/.../zz-test-zip/target/classes/META-INF/MANIFEST.MF 
[DEBUG] (f) finalName = zz-test-zip-1.0.0-SNAPSHOT 
[DEBUG] (f) forceCreation = false 
[DEBUG] (f) outputDirectory = /home/.../repos/.../zz-test-zip/target 
[DEBUG] (f) project = MavenProject: ... 
[DEBUG] (f) useDefaultManifestFile = false 
[DEBUG] -- end configuration -- 
[DEBUG] isUp2date: false (Destination /home/.../repos/.../zz-test-zip/target/zz-test-zip-1.0.0-SNAPSHOT.jar not found.) 
** Here the build stalls ** 
[INFO] Building jar: /home/.../repos/../zz-test-zip/target/zz-test-zip-1.0.0-SNAPSHOT.jar 
[DEBUG] adding directory META-INF/ 
[DEBUG] adding entry META-INF/MANIFEST.MF 

什麼可能導致maven-jar-plugin在那裏暫停?我在Ubuntu 12.04和Oracle JDK 1.7.0_45上。 Maven的版本是3.0.5「手動」安裝,而不是從Ubuntu的回購。我還可以補充一點,當我使用-o開關在離線模式下運行時,行爲是相同的。

UPDATE

我跑mvnDebug和連接過程偏食,當我暫停時,它是「暫停」主線程,它總是顯示了這個調用堆棧:

UnixNativeDispatcher.getgrgid(int) line: not available [native method] 
UnixUserPrincipals.fromGid(int) line: 129 
UnixFileAttributes.group() line: 187  
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] 
NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 
Method.invoke(Object, Object...) line: 606 
Java7Reflector.invoke(Method, Object, Object...) line: 151 
Java7Reflector.getOwnerGroupName(Object) line: 133 
Java7FileAttributes.<init>(File) line: 68 
PlexusIoResourceAttributeUtils.getFileAttributesByPathJava7(File, boolean) line: 330  
PlexusIoResourceAttributeUtils.getFileAttributesByPath(File, Logger, int, boolean, boolean) line: 224 
PlexusIoResourceAttributeUtils.getFileAttributesByPath(File) line: 195 
PlexusIoFileResourceCollection.getResources() line: 177 
AbstractArchiver$1.hasNext() line: 433 
JarArchiver(AbstractZipArchiver).createArchiveMain() line: 233 
JarArchiver(AbstractZipArchiver).execute() line: 211  
+0

你可以顯示該構建的pom文件嗎? – khmarbaise

+0

maven版本?這是maven從apache.org或從Ubuntu的回購? – MariuszS

+0

@khmarbaise恐怕不是,但在pom文件中沒有什麼特別之處。 –

回答

1

由於我將maven-jar-plugin升級到2.6,問題沒有了。

<build> 
    <plugins> 
    ... 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     <version>2.6</version> 
     <configuration> 
     <archive> 
      <index>true</index> 
      <manifest> 
      <addClasspath>true</addClasspath> 
      </manifest> 
     </archive> 
     </configuration> 
    </plugin> 
    ... 
    </plugins> 
</build> 

希望它有助於您的情況。