2011-12-29 51 views
3

我试图编译一个依赖于OrmLite的Android应用程序,无论我做什么,我仍然收到OutOfMemory错误。Maven似乎没有将参数传递给JVM

之所以我认为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安装-DargLine = “ - Xmx2048m” 在pom.xml中
  • 设置为我的插件
  • 设置为我的插件在POM。 xml

这些都没有工作。

+0

尝试设置JAVA_OPTS而不是MAVEN_OPTS。 – yorkw 2011-12-29 19:50:01

回答

4

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

<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的插件版本3.0.0(其中有很多其他重要改进) - 我会建议确保您使用此版本,并且配置肯定使用<dex>节点。

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

+0

这是正确的答案。我为这些参数编写代码并每天使用它。 – 2011-12-29 20:04:49

+0

Thanks @Roberto!那个版本的东西只是救了我!我以前试过,但它没有用,因为我没有指定版本。 – 2011-12-30 10:13:25