Scala sbt启动器堆栈溢出(版本1.*)
我想使用Scala sbt启动器堆栈溢出(版本1.*),scala,sbt,launcher,Scala,Sbt,Launcher,我想使用sbt启动器获取sbt并运行它。我有以下sbt.boot.properties: [scala] version: ${sbt.scala.version-auto} [app] org: ${sbt.organization-org.scala-sbt} name: sbt version: ${sbt.version-read(sbt.version)[1.3.7]} class: ${sbt.main.class-sbt.xMain} components
sbt启动器
获取sbt并运行它。我有以下sbt.boot.properties
:
[scala]
version: ${sbt.scala.version-auto}
[app]
org: ${sbt.organization-org.scala-sbt}
name: sbt
version: ${sbt.version-read(sbt.version)[1.3.7]}
class: ${sbt.main.class-sbt.xMain}
components: xsbti,extra
cross-versioned: ${sbt.cross.versioned-false}
resources: ${sbt.extraClasspath-}
[repositories]
local
maven-central: http://artifactory.corp.com/artifactory/joined-maven-releases
typesafe-ivy-releases: http://artifactory.corp.com/artifactory/joined-ivy-releases, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]
[boot]
directory: ${sbt.boot.directory-${sbt.global.base-${user.home}/.sbt}/boot/}
[ivy]
ivy-home: ${sbt.ivy.home-${user.home}/.ivy2/}
checksums: ${sbt.checksums-sha1,md5}
override-build-repos: ${sbt.override.build.repos-false}
repository-config: ${sbt.repository.config-${sbt.global.base-${user.home}/.sbt}/repositories}
如果我将SBT vertions设置为0.13.18
,它可以正常工作:version:${SBT.version read(SBT.version)[0.13.18]}
,但是对于最新版本,我得到了堆栈溢出错误:
[info] [launcher] getting org.scala-sbt sbt 1.3.7 (this may take some time)...
java.lang.StackOverflowError
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader$3.next(Unknown Source)
at java.net.URLClassLoader$3.hasMoreElements(Unknown Source)
at sun.misc.CompoundEnumeration.next(Unknown Source)
at sun.misc.CompoundEnumeration.hasMoreElements(Unknown Source)
at sun.misc.CompoundEnumeration.next(Unknown Source)
at sun.misc.CompoundEnumeration.hasMoreElements(Unknown Source)
at java.util.ServiceLoader$LazyIterator.hasNextService(Unknown Source)
at java.util.ServiceLoader$LazyIterator.hasNext(Unknown Source)
at java.util.ServiceLoader$1.hasNext(Unknown Source)
at javax.xml.parsers.FactoryFinder$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at javax.xml.parsers.FactoryFinder.findServiceProvider(Unknown Source)
at javax.xml.parsers.FactoryFinder.find(Unknown Source)
at javax.xml.parsers.DocumentBuilderFactory.newInstance(Unknown Source)
at org.apache.ivy.util.XMLHelper.getDocBuilder(XMLHelper.java:213)
at org.apache.ivy.util.XMLHelper.parseToDom(XMLHelper.java:207)
at org.apache.ivy.plugins.parser.m2.PomReader.<init>(PomReader.java:95)
at org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser.parseDescriptor(PomModuleDescriptorParser.java:122)
at org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser.parseDescriptor(PomModuleDescriptorParser.java:112)
at org.apache.ivy.core.cache.ModuleDescriptorProvider.provideModule$6172736d(ModuleDescriptorProvider.java:716)
at org.apache.ivy.core.cache.ModuleDescriptorMemoryCache.getStale(ModuleDescriptorMemoryCache.java:68)
at org.apache.ivy.core.cache.DefaultRepositoryCacheManager.cacheModuleDescriptor(DefaultRepositoryCacheManager.java:1195)
at org.apache.ivy.plugins.resolver.BasicResolver.parse(BasicResolver.java:536)
at org.apache.ivy.plugins.resolver.BasicResolver.getDependency(BasicResolver.java:271)
at org.apache.ivy.plugins.resolver.IBiblioResolver.getDependency(IBiblioResolver.java:538)
at org.apache.ivy.plugins.resolver.ChainResolver.getDependency(ChainResolver.java:104)
at org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser.parseOtherPom(PomModuleDescriptorParser.java:382)
at org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser.parseDescriptor(PomModuleDescriptorParser.java:143)
at org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser.parseDescriptor(PomModuleDescriptorParser.java:112)
at org.apache.ivy.core.cache.ModuleDescriptorProvider.provideModule$6172736d(ModuleDescriptorProvider.java:716)
at org.apache.ivy.core.cache.ModuleDescriptorMemoryCache.getStale(ModuleDescriptorMemoryCache.java:68)
添加:
我发现它使用的最后一个版本是1.2.3,当我将其更改为1.2.4时,它会不间断地生成以下堆栈跟踪,直到出现StackOverflow错误:
at org.apache.ivy.plugins.resolver.BasicResolver.parse(BasicResolver.java:536)
at org.apache.ivy.plugins.resolver.BasicResolver.getDependency(BasicResolver.java:271)
at org.apache.ivy.plugins.resolver.IBiblioResolver.getDependency(IBiblioResolver.java:538)
at org.apache.ivy.plugins.resolver.ChainResolver.getDependency(ChainResolver.java:104)
at org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser.parseOtherPom(PomModuleDescriptorParser.java:382)
at org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser.parseDescriptor(PomModuleDescriptorParser.java:143)
at org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser.parseDescriptor(PomModuleDescriptorParser.java:112)
at org.apache.ivy.core.cache.ModuleDescriptorProvider.provideModule$6172736d(ModuleDescriptorProvider.java:716)
at org.apache.ivy.core.cache.ModuleDescriptorMemoryCache.getStale(ModuleDescriptorMemoryCache.java:68)
at org.apache.ivy.core.cache.DefaultRepositoryCacheManager.cacheModuleDescriptor(DefaultRepositoryCacheManager.java:1195)
sbt
1.2.8
也有同样的问题吗?是的,只有0.*版本可以正常工作。jvm需要更多的RAM吗?你可以试试sbt-mem 3000
我把这些设置放在哪里?
at org.apache.ivy.plugins.resolver.BasicResolver.parse(BasicResolver.java:536)
at org.apache.ivy.plugins.resolver.BasicResolver.getDependency(BasicResolver.java:271)
at org.apache.ivy.plugins.resolver.IBiblioResolver.getDependency(IBiblioResolver.java:538)
at org.apache.ivy.plugins.resolver.ChainResolver.getDependency(ChainResolver.java:104)
at org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser.parseOtherPom(PomModuleDescriptorParser.java:382)
at org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser.parseDescriptor(PomModuleDescriptorParser.java:143)
at org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser.parseDescriptor(PomModuleDescriptorParser.java:112)
at org.apache.ivy.core.cache.ModuleDescriptorProvider.provideModule$6172736d(ModuleDescriptorProvider.java:716)
at org.apache.ivy.core.cache.ModuleDescriptorMemoryCache.getStale(ModuleDescriptorMemoryCache.java:68)
at org.apache.ivy.core.cache.DefaultRepositoryCacheManager.cacheModuleDescriptor(DefaultRepositoryCacheManager.java:1195)