Użyj SBT do budowy czystego projektu Java

Historycznie używałem Ant+Ivy lub Maven do budowania moich projektów Java. Teraz patrzę na rozwiązania nie oparte na xml.

Gradle może kompilować, jar i publikować mój projekt z kilkoma problemami.

Czy Mogę zrobić to samo z SBT? Jeśli tak, możesz podać prosty przykład użycia sbt do budowy projektu java only.

Author: opticyclic, 2011-11-28

4 answers

Tak, jest to całkowicie możliwe. Nic do konfiguracji naprawdę, mały build.plik sbt powinien zadziałać, coś w stylu:

organization := "your.group.id"

name := "Your project"

version := "1.0-SNAPSHOT"

libraryDependencies ++= Seq( <any normal jar deps> )

I uruchom sbt package z linii poleceń.

 30
Author: Hiery Nomus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-28 13:26:00

Dla mnie pomogło również trochę usunąć informacje o wersji Scali z wygenerowanych ścieżek artefaktów, jak opisano w Ta odpowiedź . Będziesz również chciał usunąć bibliotekę Scala jako zależność z dowolnego opublikowanego pliku POM lub ivy.

Oto, czego potrzebujesz:

crossPaths := false
autoScalaLibrary := false
 24
Author: raimohanska,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:00:10

Tak, możesz. Oto przykładowa konfiguracja:

name := "myName"
version := "0.1"
organization := "org.myorganization"

javacOptions in (Compile, compile) ++= Seq("-source", "1.7", "-target", "1.7", "-g:lines")

crossPaths := false // drop off Scala suffix from artifact names.
autoScalaLibrary := false // exclude scala-library from dependencies

Podsumowując. kocham SBT, ale czułem potrzebę napisania wszystkich tricky części [wiem] w użyciu go dla java. Zauważ, że ta konfiguracja może być lepsza niż maven, ponieważ będziesz miał fajne funkcje, takie jak testowanie przyrostowe lub nawet przyrostowe biegi. Rozważ również dodanie wtyczki sbt-assembly, Jeśli masz zależności i chcesz utworzyć fat jars (pliki wykonywalne).

 6
Author: VasyaNovikov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-05 17:40:09

Jest ładny przykład budowania.sbt dla czystych źródeł Javy na Xerial blog, w tym jak publikować artefakty stylu Mavena bez znacznika wersji Scali.

 2
Author: michael,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-03 01:28:18