4

Scala 2.9.2を使用して、コンパイラがScalaクラス内のクロージャの1つに与えるファイル名の長さが原因で問題が発生します

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

このファイル名で私が抱えている問題は、SSH guiを介してLinuxサーバーを介してコンパイルされたすべてのクラスを含むフォルダーをアップロードしていることですが、これは失敗します。

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 に答える