Maven assembly-plugin"group id'1377585961'太大了"错误

Cel*_*oet 9 posix maven maven-assembly-plugin

我试图理解为什么只有一个(新的)MacBookPro在我们的开发团队中运行OS-X 10.10.5,在完成项目的装配阶段时遇到问题,项目中没有其他MacBook正在进行.我想知道是否有其他人遇到这种矛盾现象,有没有人对此有解释?

这是我们得到的错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly- plugin:2.5.5:single (attachConfig) on project cmr-impl: Execution attachConfig of goal org.apache.maven.plugins:maven-assembly-plugin:2.5.5:single failed: group id '1377585961' is too big ( > 2097151 ). Use STAR or POSIX extensions to overcome this limit -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

所以是的,我知道如果我<tarLongFileMode>posix<tarLongFileMode>在POM中使用模式,问题就会消失.然而,这并不需要在任何运行Java和Maven的相同版本的其他的MacBook,所以它不是真正正确的"答案".我能找到的唯一区别是我的同事都在运行OS-X 10.9.x,但是我找不到这个以任何方式相关的理由.

为了排除糟糕的Maven库下载或坏插件,我删除了整个.m2/repository目录及其内容(两三次),以及apache-maven-3.3.3安装,用第一个3.2.1替换它,再替换3.1.1,然后2.5,最后3.0.4.不明白.

仅供参考,这与IDE无关.这是命令行"mvn -X clean install".

请不要只是告诉我使用<tarLongFileMode>posix<tarLongFileMode>- 就像我说的那样,这是已知的,并且它无法解释为什么装配阶段从一台MacBook到另一台非常不合理.

提前致谢.

这是Java版本信息:

$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

$ mvn -version
Apache Maven 3.0.4 (r1232337; 2012-01-17 03:44:56-0500)
Maven home: /usr/local/apache-maven-3.0.4
Java version: 1.8.0_45, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.10.5", arch: "x86_64", family: "mac"
Run Code Online (Sandbox Code Playgroud)

这是完整的错误堆栈:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.5.5:single (attachConfig) on project cmr-impl: Execution attachConfig of goal org.apache.maven.plugins:maven-assembly-plugin:2.5.5:single failed: group id '1377585961' is too big ( > 2097151 ). Use STAR or POSIX extensions to overcome this limit -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.5.5:single (attachConfig) on project cmr-impl: Execution attachConfig of goal org.apache.maven.plugins:maven-assembly-plugin:2.5.5:single failed: group id '1377585961' is too big ( > 2097151 ). Use STAR or POSIX extensions to overcome this limit
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution attachConfig of goal org.apache.maven.plugins:maven-assembly-plugin:2.5.5:single failed: group id '1377585961' is too big ( > 2097151 ). Use STAR or POSIX extensions to overcome this limit
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:110)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
    ... 19 more
Caused by: java.lang.RuntimeException: group id '1377585961' is too big ( > 2097151 ). Use STAR or POSIX extensions to overcome this limit
    at org.codehaus.plexus.archiver.commonscompress.archivers.tar.TarArchiveOutputStream.failForBigNumber(TarArchiveOutputStream.java:635)
    at org.codehaus.plexus.archiver.commonscompress.archivers.tar.TarArchiveOutputStream.failForBigNumberWithPosixMessage(TarArchiveOutputStream.java:630)
    at org.codehaus.plexus.archiver.commonscompress.archivers.tar.TarArchiveOutputStream.failForBigNumbers(TarArchiveOutputStream.java:613)
    at org.codehaus.plexus.archiver.commonscompress.archivers.tar.TarArchiveOutputStream.putArchiveEntry(TarArchiveOutputStream.java:290)
    at org.codehaus.plexus.archiver.tar.TarArchiver.tarFile(TarArchiver.java:330)
    at org.codehaus.plexus.archiver.tar.TarArchiver.execute(TarArchiver.java:189)
    at org.codehaus.plexus.archiver.AbstractArchiver.createArchive(AbstractArchiver.java:1039)
    at org.apache.maven.plugin.assembly.archive.archiver.AssemblyProxyArchiver.createArchive(AssemblyProxyArchiver.java:437)
    at org.apache.maven.plugin.assembly.archive.DefaultAssemblyArchiver.createArchive(DefaultAssemblyArchiver.java:181)
    at org.apache.maven.plugin.assembly.mojos.AbstractAssemblyMojo.execute(AbstractAssemblyMojo.java:484)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
    ... 20 more
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :cmr-impl
Run Code Online (Sandbox Code Playgroud)

Rud*_*dyD 12

对我有用的是添加这个 posix 配置:

<plugin>
 <artifactId>maven-assembly-plugin</artifactId>
 <version>${maven.assembly.version}</version>
  <executions>
  </executions>
  <!-- added this configuration tag -->
  <configuration>
   <descriptors>
    <descriptor>src/assembly/distribution.xml</descriptor>
    </descriptors>
    <tarLongFileMode>posix</tarLongFileMode>
    <outputDirectory>${project.build.directory}</outputDirectory>
    <appendAssemblyId>false</appendAssemblyId>
   </configuration>
Run Code Online (Sandbox Code Playgroud)


Cel*_*oet 5

事实证明,此问题的答案是,在标准模式下,一台Mac上的用户的GroupID号超过了为库代码指定的2097151大小。OSX组ID因MacBook的不同而异。“ posix”可以解决根本问题的原因是,POSIX模式具有更大的可变大小以在内部保存GroupID,因此,较新的MacBook不会尝试在其中放入大数字。因此,它与Maven-Assembly的功能完全无关,而与底层库的代码库无关。指定POSIX模式是一种变通方法,而不是必需的,但对于所有POM用例而言,可以将其视为潜在的有效“建议”,因为这将防止利基机器在构建阶段失败。

在某些情况下会不会由于其他原因而无法指定POSIX,因此这将是无益的解决方案吗?在OS和库的宏伟计划中,这是完全有可能的。

任何选择的解决方案的适当性应始终基于其原因,而不是在没有清楚地了解如何实现的情况下偶然地使问题消失。