Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala maven插件没有';t使用StackOverflowerr编译_Scala_Maven_Scala Maven Plugin - Fatal编程技术网

Scala maven插件没有';t使用StackOverflowerr编译

Scala maven插件没有';t使用StackOverflowerr编译,scala,maven,scala-maven-plugin,Scala,Maven,Scala Maven Plugin,我在maven项目中发现了一个与Scala maven插件相关的bug。我有一个非常长的特征序列(用于机器学习目的),我手工编码(74个元素) 我在序列中添加了一个元素,它不再编译了。如果我对这个序列中的任何元素进行注释,元素的数量就会减少,它就会编译 有关更多信息,以下是我编译的最终结果: [ERROR] Failed to execute goal net.alchim31.maven:scala-maven-plugin:3.3.1:compile (default) on project

我在maven项目中发现了一个与Scala maven插件相关的bug。我有一个非常长的特征序列(用于机器学习目的),我手工编码(74个元素)

我在序列中添加了一个元素,它不再编译了。如果我对这个序列中的任何元素进行注释,元素的数量就会减少,它就会编译

有关更多信息,以下是我编译的最终结果:

[ERROR] Failed to execute goal net.alchim31.maven:scala-maven-plugin:3.3.1:compile (default) on project SecretProject: wrap: org.apache.commons.exec.ExecuteException: Process exited with an error: 240 (Exit value: 240) -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
加上StackTrace的最开始部分:

[INFO] Compiling 13 source files to /home/belka/Bureau/SecretProject/target/classes at 1513759339071
[ERROR] error: java.lang.StackOverflowError
[INFO]  at scala.reflect.internal.TreeInfo.isSelfConstrCall(TreeInfo.scala:296)
[INFO]  at scala.reflect.internal.TreeInfo.isSelfOrSuperConstrCall(TreeInfo.scala:344)
[INFO]  at scala.reflect.internal.Trees$UnderConstructionTransformer$class.transform(Trees.scala:1701)
[INFO]  at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:291)
[INFO]  at scala.tools.nsc.transform.ExplicitOuter$ExplicitOuterTransformer.transform(ExplicitOuter.scala:457)
[INFO]  at scala.tools.nsc.transform.ExplicitOuter$ExplicitOuterTransformer.transform(ExplicitOuter.scala:352)
[INFO]  at scala.reflect.internal.Trees$class.itransform(Trees.scala:1345)
(修改项目名称)

  • 有没有人在Scala maven插件中遇到过类似的问题
  • scalamaven插件
    parser(在编译器中)对序列解析有任何类型的硬限制吗
  • 如何解决它并编译我的项目
  • 为什么它可以使用IntelliJ编译(“播放”按钮),而不能使用Maven编译
编辑:

我正在添加包含我的
Scala maven插件的pom.xml片段
片段:

      <plugin>
        <!-- see http://davidb.github.com/scala-maven-plugin -->
        <groupId>net.alchim31.maven</groupId>
        <artifactId>scala-maven-plugin</artifactId>
        <version>3.3.1</version>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
              <goal>testCompile</goal>
            </goals>
            <configuration>
              <args>
                <arg>-dependencyfile</arg>
                <arg>${project.build.directory}/.scala_dependencies</arg>
              </args>
              <jvmArgs>
                <jvmArg>-Xms512m</jvmArg>
                <jvmArg>-Xmx4096m</jvmArg>
              </jvmArgs>
            </configuration>
          </execution>
        </executions>
      </plugin>

net.alchim31.maven
scala maven插件
3.3.1
编写
测试编译
-从属文件
${project.build.directory}/.scala\u依赖项
-Xms512m
-Xmx4096m

按顺序回答您的问题:

  • 对。有关问题和解决方案,请参阅
  • JVM有一个堆栈限制,现在我推测一下,但是在解析代码时通常使用堆栈,如果它是递归的(oivey),那么解析很长的序列将占用更多的堆栈内存是有道理的。显然,在maven和scala解析器的内存使用情况下,它太多了
  • 要解决这个问题,请参阅上面的链接
  • 可能就像我上面提到的那样,maven比intellij有更多的堆栈内存消耗。编辑:我认为这更可能取决于编译器进程是如何启动的,如果我没有弄错的话,它可能具有不同的堆栈状态

按顺序回答您的问题:

  • 对。有关问题和解决方案,请参阅
  • JVM有一个堆栈限制,现在我推测一下,但是在解析代码时通常使用堆栈,如果它是递归的(oivey),那么解析很长的序列将占用更多的堆栈内存是有道理的。显然,在maven和scala解析器的内存使用情况下,它太多了
  • 要解决这个问题,请参阅上面的链接
  • 可能就像我上面提到的那样,maven比intellij有更多的堆栈内存消耗。编辑:我认为这更可能取决于编译器进程是如何启动的,如果我没有弄错的话,它可能具有不同的堆栈状态
    • 您可以:

      • 反递归您的代码或使用尾部递归
      • 或者通过
        -Xss

              <jvmArgs>
                <jvmArg>-Xss4m</jvmArg>
                <jvmArg>-Xms512m</jvmArg>
                <jvmArg>-Xmx4096m</jvmArg>
              </jvmArgs>
        
        
        -Xss4m
        -Xms512m
        -Xmx4096m
        
      我想IDEA已经增加了默认的最大堆栈大小(64位VM中的iirc 1024k)。

      您可以:

      • 反递归您的代码或使用尾部递归
      • 或者通过
        -Xss

              <jvmArgs>
                <jvmArg>-Xss4m</jvmArg>
                <jvmArg>-Xms512m</jvmArg>
                <jvmArg>-Xmx4096m</jvmArg>
              </jvmArgs>
        
        
        -Xss4m
        -Xms512m
        -Xmx4096m
        


      我想IDEA已经增加了默认的最大堆栈大小(64位虚拟机中的iirc 1024k)。

      会出现什么错误?请给出一个重现该问题的小示例。我添加了有关堆栈跟踪的信息+为了重现该问题,您可以创建一个包含74个手动添加元素的序列,然后在第75次时它将不再编译。我尝试创建一个包含200个手动添加元素的序列,效果很好。请提供一个最小的、可验证的和完整的示例,以便我们可以重现您的问题。感谢您的回答和时间。你能给我你的jdk版本吗?您是否尝试过使用maven编译?能否将pom.xml片段与scala maven插件的配置共享?会出现什么错误?请给出一个重现该问题的小示例。我添加了有关堆栈跟踪的信息+为了重现该问题,您可以创建一个包含74个手动添加元素的序列,然后在第75次时它将不再编译。我尝试创建一个包含200个手动添加元素的序列,效果很好。请提供一个最小的、可验证的和完整的示例,以便我们可以重现您的问题。感谢您的回答和时间。你能给我你的jdk版本吗?您是否尝试过使用maven进行编译?能否将pom.xml片段与scala maven插件的配置共享?我看到了建议的解决方案,但这不适合我的问题。编译阶段需要占用我4-5%的内存…@belka你有可用内存还是JVM的堆栈大小内存?堆栈大小是有限的,无论可用的系统内存。我的可用内存;JVM堆栈大小设置为4096M,远远高于消耗的memory@belka更正4096M不是您的最大堆栈大小,而是您的最大“堆”内存我看到了建议的解决方案,但是这不适合我的问题。编译阶段需要占用我4-5%的内存…@belka你有可用内存还是JVM的堆栈大小内存?堆栈大小是有限的,无论可用的系统内存。我的可用内存;JVM堆栈大小设置为4096M,远远高于消耗的memory@belka更正4096M不是您的最大堆栈大小,而是您的最大“堆”内存库!这解决了我的问题。您是否有任何文档说明您是如何找到此解决方案的,或者为什么它解决了我的问题?为什么这么小的堆大小就足够了?Xss表示堆栈大小,Xms/Xmn表示堆大小(4G不是小堆大小)。您可以搜索堆栈大小和堆大小之间的差异(对于jvm)。我找到了解决办法,是吗