gpt4 book ai didi

scala - Travis CI 忽略 MAVEN_OPTS?

转载 作者:行者123 更新时间:2023-12-03 16:54:15 24 4
gpt4 key购买 nike

我的 Scala 项目(Maven 管理的)无法在 Travis 上构建,抛出 GC overhead limit exceeded尽管使用相同的 MAVEN_OPTS=-Xmx3g -XX:MaxPermSize=512m 在本地编译良好,但仍出错.我怀疑 Travis 以某种方式忽略了我的 MAVEN_OPTS :当我尝试针对 Oracle JDK 8 进行测试时,Travis 记录:

$ Setting environment variables from .travis.yml
$ export MAVEN_OPTS="-XX:MaxPermSize=512m -Xmx3g"

这看起来不错。但是,在它记录后不久:
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=192m; support was removed in 8.0

这是令人不安的,因为我没有指定 -XX:MaxPermSize=192m , 仅 512m . (这让我相信我的 -Xmx3g 也被忽略了,导致编译失败。)

我尝试指定 MAVEN_OPTS在我的 pom 中的许多其他地方,都无济于事。例如,对于 maven-scala-plugin,我有:
<configuration>
...
<jvmArgs>
<jvmArg>-Xmx3g</jvmArg>
<jvmArg>-XX:MaxPermSize=512m</jvmArg>
</jvmArgs>
</configuration>

而且我在 maven-surefire-plugin 和 scalatest 插件下还有以下内容,尽管构建在编译期间失败,而不是测试:
<configuration>
<argLine>-Xmx3g -XX:MaxPermSize=512m</argLine>
</configuration>

以下是我的 .travis.yml 的全部内容:
language: java
env:
global:
- MAVEN_OPTS="-XX:MaxPermSize=512m -Xmx3g"
script: mvn clean install
jdk:
- oraclejdk8
- oraclejdk7

我正在使用 Scala 2.11.2 和 scala-maven-plugin 3.2.0。

最佳答案

更新 (11/2/15):

终于彻底解决了here .引用:

如果您想使用基于容器的构建(不依赖于 sudo),您可以将您想要的内容回显到 $HOME/.mavenrc文件,这将优先于 /etc/mavenrc ,像这样:

.travis.yml :

before_script:
- echo "MAVEN_OPTS='-Xmx2g -XX:MaxPermSize=512m'" > ~/.mavenrc

(你也可以把它放在 before_install 中,这取决于你的设置)。

旧答案:

我终于找到了答案 here ,其中引用了 this (closed but not resolved) issue在 Travis CI github 上。

似乎 Travis 导出了一个 MAVEN_OPTS环境变量作为 root 通过文件 /etc/mavenrc ,然后不会被任何其他 MAVEN_OPTS 覆盖定义(例如,通过 travis 配置中的 env/global 设置)。解决方法是删除 /etc/mavenrc设置自定义前 MAVEN_OPTS .

我能够设置自定义 MAVEN_OPTS并在我的 .travis.yml 中使用以下内容成功构建:
script:
- sudo rm /etc/mavenrc
- export MAVEN_OPTS="-Xmx2469m -XX:MaxPermSize=512m"
- mvn clean install

请注意,我没有使用 language: java在我的 travis 配置中,直接通过 script 调用 maven指示。

关于scala - Travis CI 忽略 MAVEN_OPTS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29201549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com