Travis CI 忽略 MAVEN_OPTS?

2023-11-27

我的 Scala 项目(Maven 管理的)无法在 Travis 上构建,抛出一个GC overhead limit exceeded尽管在本地用相同的方法编译得很好,但仍然出错MAVEN_OPTS=-Xmx3g -XX:MaxPermSize=512m。我怀疑特拉维斯不知何故忽略了我的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, only 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,像这样:

in .travis.yml:

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

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

旧答案:

我终于找到了答案here,其中引用这个(已关闭但未解决)问题在 Travis CI github 上。

看起来特拉维斯出口了一个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指示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Travis CI 忽略 MAVEN_OPTS? 的相关文章

随机推荐

  • 带有 ChoiceField 的 Django Rest 框架

    我的用户模型中有一些字段是选择字段 我正在尝试找出如何最好地将其实现到 Django Rest Framework 中 下面是一些简化的代码来展示我正在做的事情 models py class User AbstractUser GENDE
  • 如何在 Django 中处理来自 MySQL 的“部分”日期(2010-00-00)?

    在我的一个使用 MySQL 作为数据库的 Django 项目中 我需要一个date还接受 部分 日期的字段 例如仅年份 YYYY 和年份和月份 YYYY MM 加上正常日期 YYYY MM DD The dateMySQL 中的字段可以通过
  • 记住 Swing 中的窗口位置

    我有一个相当大的 swing 应用程序 我想让它记住所有窗口 jframe 等的大小 因此 如果用户按照自己喜欢的方式调整窗口大小 下次窗口看起来会完全相同 我是否有更好的选择来解决它 但手动将每个窗口的位置 大小写入优先 有没有什么方便的
  • 当尝试使用 Jasmine 和 AngularJS 进行单元测试时,参数“fn”不是一个函数

    我正在尝试在 Angular 应用程序中使用 Jasmine 进行一些单元测试 但遇到了一些错误 Error Error injector modulerr Failed to instantiate module LocalStorage
  • 使用保留字时间戳作为字段名称(Firebird 2.5)

    除了 MSSQL 和 SQLite 之外 我还正在扩展现有应用程序的数据层以与 Firebird 2 5 配合使用 但我遇到了障碍 我有一个名为 TimeStamp 的字段 它将数据 时间存储为 TimeStamp 类型 这在类型为日期时间
  • WCF 服务作为 MVC 应用程序的一部分

    我有一个 MVC4 中的 Web 应用程序 我将主持一个共享主机提供者 我想用 WCF 服务来扩展它来上传文件 将有一个 WPF 桌面应用程序 允许用户直接从他们的 PC 上传文件 我宁愿以某种方式 一起 托管它 以避免对存储目录的读 写访
  • 正则表达式中`[.]`与`.`之间的差异

    下面的表达式并不相同 and 为什么会这样 它们究竟有何不同 之间有什么相互作用 以及正则表达式中的特殊字符 谢谢 The dot 通常是通配符 匹配任何字符 在一个字符类中 但是 它被视为文字并且仅匹配点
  • 如何创建覆盖 Windows 标题栏的 Java Swing 应用程序?

    我正在开发一个将用于心理学实验的 java swing 应用程序 研究人员要求我让该程序 黑屏 以便用户不会受到外界刺激 他们希望 Swing 应用程序能够真正全屏 并且顶部没有任何类型的标题栏或最小化 最大化 关闭按钮 该软件将在使用 J
  • 如何使用 AngularJS NgRoute 启动 MixItUp

    我一直在使用 AngularJS 设置一个 jquery 插件 MixItUp 虽然我可以在使用 NgRoute 的部分视图之一中成功启动容器 但一旦我移动到其他页面视图并返回 MixItUp 似乎不知道如何启动设置再次 我尝试过 docu
  • 选择列列表中至少有一个值不为空的行

    我有一个包含许多列 例如 1000 的大数据框 我有一个列列表 由脚本生成 10 我想选择原始数据框中的所有行 其中至少我的列列表之一不为空 因此 如果我提前知道列数 我可以这样做 list of cols col1 df df list
  • 如何使用其他命名空间中的对象以及如何在 PHP 中导入命名空间

    这两行之间的主要区别是什么 obj new ArrayObject obj new ArrayObject 当我使用第一行时 出现错误 Fatal error Class Foo Bar ArrayObject not found 我不太确
  • 正则表达式匹配可以基于两行文本吗?

    假设我有 def abc xyz abc 我想匹配 xyz abc 作为一个整体 使用最通用的正则表达式可以实现这一点吗 这不是具有多行标志的 perl RegEx 或 Net Regex 我猜应该是 BNF 来匹配这个 许多正则表达式实现
  • jCarousel:您可以删除所有项目并重新绑定到新集合吗?

    jCarousel 文档陈述如下 通过传递回调函数 itemLoadCallback 作为配置选项 您可以动态地create li 内容项 jCarousel 包含一个方便的方法 add 可以将项目的索引传递给create以及要创建的项目的
  • 如何按特定月份/日期过滤日期数据框?

    所以我的代码如下 df Dates df Dates index month 11 我正在做一个测试 看看是否可以过滤月份 以便它只显示 11 月日期 但这不起作用 它给我以下错误 AttributeError Int64Index 对象没
  • 调用 POST 方法后 Spring 控制器返回 404

    我有一个从 JQuery post 调用的 Spring 控制器 当它被调用时 控制器的方法被调用并返回 但随后 Spring 在后台更改 URL 并调用服务器增益 服务器响应 404 我认为这是对 Spring 在处理 POST 方法后尝
  • spring 3上传很多文件

    是的 我们的客户想要上传多个文件 我们使用 spring 3 mvc 官方的例子是这样的 markup
  • 如何在 WinRT 应用程序中获取实际语言?

    是否有可能像 Windows Phone 一样获取操作系统的实际语言 我在用着CultureInfo CurrentCulture TwoLetterIsoString 但我总是收到 en 而不是正确的语言 即de就我而言 那么如何获取 W
  • 如何在 Meteor 中访问客户端 IP 地址? [复制]

    这个问题在这里已经有答案了 这似乎是一个非常基本的问题 没有一个优雅的解决方案 答案 如何从 1 服务器或 2 客户端访问客户端 远程 IP 地址 获取客户端IP 如果没有 http 请求 在函数中您应该能够通过以下方式获取 clientI
  • 变量变量

    如何在 for 循环内创建可变变量 这是循环 for counter 1 counter lt aantalZitjesBestellen counter 在这个循环中 我想在每次通过时创建一个变量 seat 但它必须像这样递增 第一次通过
  • Travis CI 忽略 MAVEN_OPTS?

    我的 Scala 项目 Maven 管理的 无法在 Travis 上构建 抛出一个GC overhead limit exceeded尽管在本地用相同的方法编译得很好 但仍然出错MAVEN OPTS Xmx3g XX MaxPermSize