4

由于编译器使用 Scala 2.9.2 在 Scala 类中为我的一个闭包提供的文件名长度,我遇到了问题

CurrencyInitializer$$anonfun$com$gottex$gottware$server$startup$initializers$impl$currency$CurrencyInitializer$$updateDepositEquivalentBonds$1.class

这个文件名的问题是我正在上传一个文件夹,其中包含我通过 Linux 服务器通过 SSH gui 编译的所有类,但这失败了。

private def updateDepositEquivalentBonds(currency: Currency) {

    val depositEquivalentBonds = gottwareDataSource.space.readAllWithCurrency(classOf[DepositEquivalentBondImpl], currency)
    for (depositEquivalentBond <- depositEquivalentBonds) depositEquivalentBond.updateFromDeposit(gottwareDataSource.space)
    if (depositEquivalentBonds.length > 0) {
      gottwareDataSource.space.writeMultiple(depositEquivalentBonds, Lease.FOREVER,
        UpdateModifiers.UPDATE_OR_WRITE | UpdateModifiers.NO_RETURN_VALUE)
      gottwareDataSource.space.writeMultiple(AskBidSpread.newInstances(depositEquivalentBonds.toArray[SecurityImpl]), Lease.FOREVER, UpdateModifiers.UPDATE_OR_WRITE | UpdateModifiers
        .NO_RETURN_VALUE)
}
  }

令人惊讶的是,这是产生长文件名的代码。我可以在编译器上做些什么来防止这种情况发生吗?

4

1 回答 1

4

max-classfile-name在 scala 编译器调用上设置参数以缩短文件名。

在 POM 中,要获取不超过 144 个字符(Crypt FS 大小限制)的文件名,配置看起来像

 <plugin>
     <groupId>org.scala-tools</groupId>
     <artifactId>maven-scala-plugin</artifactId>
     <configuration>
         <scalaVersion>2.9.2</scalaVersion>
         <args>
              <arg>-Xmax-classfile-name</arg>
              <arg>144</arg>
         </args>
     </configuration>
 </plugin>

编译器源设置参考链接(将过时)

于 2013-03-20T13:50:48.363 回答