![](/img/trans.png)
[英]Is it possible to use SBT in a Java project with Hibernate and AspectJ?
[英]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.