歴史的に、私はJavaプロジェクトをビルドするためにAnt + IvyまたはMavenを使用しました。現在、非XMLベースのソリューションを調べています。
Gradleは、プロジェクトをコンパイル、jar変換、および公開できますが、問題はほとんどありません。
SBTでも同じことができますか?もしそうなら、sbtを使用してJavaのみのプロジェクトを構築することの簡単な例を提供できますか?.
はい、これは完全に可能です。実際にはセットアップするものは何もありません。小さなbuild.sbtファイルで次のようなことができます。
organization := "your.group.id"
name := "Your project"
version := "1.0-SNAPSHOT"
libraryDependencies ++= Seq( <any normal jar deps> )
そして、コマンドラインからsbt package
を実行します。
この答え で説明されているように、生成されたアーティファクトパスからscalaバージョン情報を削除することも少し役立ちました。また、 Scala公開するpomまたはivyファイルからの依存関係としてのライブラリ。
必要なものは次のとおりです。
crossPaths := false
autoScalaLibrary := false
できますよ。設定例:
name := "myName"
version := "0.1"
organization := "org.myorganization"
javacOptions in (Compile, compile) ++= Seq("-source", "1.8", "-target", "1.8", "-g:lines")
crossPaths := false // drop off Scala suffix from artifact names.
autoScalaLibrary := false // exclude scala-library from dependencies
まとめます。 SBTは大好きですが、Javaで使用する際のトリッキーな部分をすべて備えた完全なビルドを作成する必要があると感じました。この設定は、Mavenの設定よりもbetterになる可能性があることに注意してください。これは、増分テストや増分実行などの素晴らしい機能があるためです。依存関係があり、ファットjar(実行可能ファイル)を作成する場合は、sbt-Assembly
プラグインの追加も検討してください。
Javaソース Xerialブログ のbuild.sbtの良い例があり、Scala =バージョンタグ。