java - Maven 似乎没有将参数传递给 JVM

标签 java android maven out-of-memory

我正在尝试编译一个依赖于 OrmLite 的 Android 应用程序,但无论我做什么,我仍然会收到 OutOfMemory 错误。

我认为 Maven 不传递任何关于堆大小的参数的原因是我只能在其输出中看到以下内容:

/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -jar/Users/mikhail.borozdin/android-sdk-macosx/platform-tools/lib/dx.jar - -dex --output=/Users/mikhail.borozdin/Documents/workspace/AndroidOrmLiteTest/target/classes.dex

我是如何尝试将参数传递给 JVM 的?

  • 导出 MAVEN_OPTS=-Xmx2048m
  • mvn -X install -DargLine="-Xmx2048m"
  • 在 pom.xml 中设置我的插件
  • 在 pom.xml 中设置我的插件

这些都不起作用。

最佳答案

如果您正在构建的项目正在使用 android-maven-plugin , 你想设置 dex mojo configuration在 maven pom.xml 文件中,例如:

<dex>
  <jvmArguments>
    <jvmArgument>-Xms256m</jvmArgument>
    <jvmArgument>-Xmx512m</jvmArgument>
  </jvmArguments>
</dex>

这是一个来自完整 pom.xml 文件的示例:

https://github.com/rtyley/agit/blob/a014c970/pom.xml#L116-121

请注意,用于 dex 配置的特定 xml 在 android-maven-plugin 版本 3.0.0 的发布前有了相当大的发展(它有 很多 其他重要改进)- 我建议确保您正在使用此版本并且配置肯定使用 <dex>节点。

android-maven-plugin will use a 1GB heap by default在 v3.0.0 之后的版本中(在撰写本文时尚未发布)。

关于java - Maven 似乎没有将参数传递给 JVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8672551/

相关文章:

java - 使用异步 for 循环调用 RxJava 依赖方法

java - 将 HTTP 请求重定向到不同的服务器

Maven 从错误的位置读取用户配置

java - 如何从汉明球中的一个字节计算所有最近的邻居

java - 节拍器android应用程序AudioTrack releaseBuffer()错误

android - 在 React Native 中找不到 intellij-core.jar

android jetpack 导航仪器测试返回导航失败

java - 无法同时使用 Gradle 和 Maven

maven - 如何让 maven 查找 war 文件而不是 jar 文件?

java - 两种代码速度对比