ubuntu上的maven jar插件性能不佳

时间:2013-11-20 16:09:32

标签: java maven ubuntu jar

我的maven版本在maven-jar-plugin上停滞不前。构建一个正常大小的jar文件大约需要10-15秒。使用jar工具或使用java.util.jar类直接创建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 repo的版本。我还可以添加,当我在离线模式下使用-o开关运行时,行为是相同的。

更新

我运行mvnDebug并将进程附加到eclipse,当我暂停主线程时它“暂停”时,它总是显示这个调用堆栈:

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    

1 个答案:

答案 0 :(得分: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>

希望对你的案子有所帮助。