繁体   English   中英

使用 SBT 构建纯 Java 项目

[英]Use SBT To Build Pure Java Project

过去,我使用 Ant+Ivy 或 Maven 来构建我的 Java 项目。 我现在正在研究非基于 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 版本信息,如本答案所述 您还需要从您发布的任何 pom 或 ivy 文件中删除作为依赖项的 Scala 库。

这是您需要的:

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更好,因为您将拥有不错的功能,例如增量测试甚至增量运行。 如果您有依赖项并想要创建胖 jar(可执行文件),还可以考虑添加sbt-assembly插件。

Xerial 博客中有一个关于纯 Java 源代码的build.sbt的很好示例,包括如何发布没有 Scala 版本标记的 Maven 样式工件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM