【问题标题】:maven-assembly-plugin gives java heap space errormaven-assembly-plugin 给出 java 堆空间错误
【发布时间】:2013-09-15 15:56:38
【问题描述】:

在 TeamCity 构建中,有一个执行 maven-assembly-plugin 的步骤,在等待一段时间(40-50 分钟)后,它给出了 java 堆空间错误(参见日志):

[15:32:58][com.****:project] [INFO] --- maven-assembly-plugin:2.4:single (make-assembly) @ project ---
[15:33:01][com.****:project] [INFO] Reading assembly descriptor: assembly.xml
[16:20:02][com.****:project] [ERROR] Java heap space -> [Help 1]

Teamcity 在 Unix 环境中执行。 maven 步骤执行在开发 Windows 机器上正常工作的“mvn clean deploy”。

已经尝试将 MAVEN_OPTS 设置为:

MAVEN_OPTS = -Xms256m -Xmx1024m
MAVEN_OPTS = -Xms512m -Xmx2048m

有什么线索可以解决这个问题吗?

【问题讨论】:

    标签: java maven teamcity


    【解决方案1】:

    问题是关于Unix上maven-assembly-plugin的配置问题。

    [09:21:17][com.***:project] [DEBUG] FileSet[lib/] dir perms: -1 file perms: -1 lineEndings: unix
    [09:21:17][com.***:project] [DEBUG] The archive base directory is 'null'
    

    没有在 pom.xml 配置中设置存档基目录。因此,在 Unix 上,程序集归档的是 /lib 文件夹,而不是 /projects/project/lib。因此,内存不足错误。

    这是添加到当前配置的行:

    <archiveBaseDirectory>${project.basedir}</archiveBaseDirectory>
    

    这是生成的配置:

      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.4</version>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <finalName>project</finalName>
              <appendAssemblyId>false</appendAssemblyId>
              <archiveBaseDirectory>${project.basedir}</archiveBaseDirectory>
              <descriptors>
                <descriptor>assembly.xml</descriptor>
              </descriptors>
            </configuration>
          </execution>
        </executions>
      </plugin>
    

    【讨论】:

      猜你喜欢
      • 2013-08-17
      • 1970-01-01
      • 2014-09-05
      • 1970-01-01
      • 2012-03-25
      • 2015-05-15
      • 1970-01-01
      • 2013-03-14
      • 2023-04-07
      相关资源
      最近更新 更多