scala文件名太长

scala文件名太长,scala,hadoop,scalding,Scala,Hadoop,Scalding,我使用的是scala 2.10和gradle 1.11 我的问题是,当我尝试在hadoop集群中运行时,已编译的jar会删除一个错误。 我想在hadoop上运行,因为我使用的是滚烫 例外情况是: Exception in thread "main" java.io.FileNotFoundException: /tmp/hadoop-root/hadoop-unjar6538587701808097105/com/twitter/bijec tion/GeneratedTupleCollecti

我使用的是scala 2.10和gradle 1.11

我的问题是,当我尝试在hadoop集群中运行时,已编译的jar会删除一个错误。 我想在hadoop上运行,因为我使用的是滚烫

例外情况是:

Exception in thread "main" java.io.FileNotFoundException:
/tmp/hadoop-root/hadoop-unjar6538587701808097105/com/twitter/bijec
tion/GeneratedTupleCollectionInjections$$anon$31$$anonfun$invert$10$$anon
fun$apply$46$$anonfun$apply$47$$anonfun$apply$48$$anonfun$apply$49$$anonfu
n$apply$50$$anonfun$apply$51$$anonfun$apply$52$$anonfun$apply$53$$anonfun$app
ly$54$$anonfun$apply$55.class (File name too long)

欢迎发表任何评论…

-Xmax classfile name 200
添加到scalac选项应该可以解决这个问题

资料来源:


您是否在加密的文件系统上运行?以前我和其他很多人都有过类似的经历:不,我在docker containerDocker中运行时只支持242字节长的文件名(),而在您的情况下,自动生成的文件名是252字节长。有什么解决方案吗?也许我可以使用maven shade插件来重命名这些类,但它的解决方案太难看了…请看下面我的答案。它应该可以解决您的问题。但问题不是因为编译自己的源代码时他无法控制的
滚烫的
内部类吗?毕竟错误是关于烫伤类:
com/twitter/bijec-tion/GeneratedTupleCollectionInjections…
同意@Jas所说的。scalac选项只适用于具有较短文件名的类。要进一步扩展,您需要减小最大类文件名值,以便可以在Linux中潜入硬255完整文件路径大小限制。