多くのJavaライブラリのMavenセントラルリポジトリへの公開に利用されていたSonatypeのOSSRHが昨年Central Portalに移行され、自分のメンテしているOSSのJava/Scalaプロジェクトも移行を行ったのですが、Scalatraに関しては今年になってCentral Portalへのアップロードが408で失敗するという現象に悩まされていました。
どうやらバンドルサイズが大きすぎてアップロードに時間がかかりすぎてサーバ側でタイムアウトしてしまっているようなのですが、調べてみたところScala 3のScaladocが大きすぎることに加えてScalatraはサブプロジェクト数が多く、さらにScala 2/3およびjavax/jakartaでクロスビルドを行っているためバンドルサイズが大きくなりすぎてしまっているようでした。
クロスビルド毎にアップロードを分割してみたのですが、今度は1ヶ月毎のリリース可能ファイルサイズの制限に引っかかってしまいそうだったので最終的にはsbt-salad-daysプラグインというScaladocのサイズを縮小するsbtプラグインを使用してどうにかリリースすることができました。
ただ、Central Portalではファイルサイズ以外にファイル数やリリース回数にも月間の制限があり、Scalatraはファイル数の制限でいずれにしろ月一回しかリリースできなそうです。これらの制限はSonatypeに申請することで緩和することができるそうです。
また、バンドルサイズが大きすぎることによるタイムアウト問題については、Scaladocからカスタムフォントを削除することでサイズを減らす修正がすでにScala 2/3ともに取り込まれているようなので最新のScalaを使えばsbt-salad-daysプラグインを使う必要はなくなるかもしれません。
ScalatraのCentral Portalへのpublishが失敗し続けているので調べてみたところ、Scalatraはサブプロジェクトが多い上にクロスビルドしまくっているのでバンドルサイズが大きすぎてアップロードがタイムアウトしてしまっているようだ。このままだと永遠にリリースできないんだけどどうしたものか…。
— Naoki Takezoe (@takezoen) 2026年8月29日




