您好,我有5个jar文件,并尝试使用sbt将它们发布到本地存储库。但是,当我将它们放置在unmanagedBase目录中时,就像lib/
它们不会被复制一样publishLocal
。是否有一种简单的方法可以将它们包括在发布过程中?
目前,maven在此处具有类似的解决方案:http : //maven.apache.org/guides/mini/guide-3rd-party-jars-local.html
一种选择是为要发布的每个jar定义一个子项目。让您的主要项目依赖于每个项目。给每个子项目合适的name
,version
和organization
。对于每个子项目,请将其jar放置在类路径上以外的地方,并使输出packageBin
成为该jar。
例如(sbt 0.13 build.sbt),
lazy val main = project.dependsOn(subA)
lazy val subA = project.settings(
name := "third-party",
organization := "org.example",
version := "1.4",
packageBin in Compile := baseDirectory.value / "bin" / "third-party.jar",
// if there aren't doc/src jars use the following to
// avoid publishing empty jars locally
// otherwise, define packageDoc/packageSrc like packageBin
publishArtifact in packageDoc := false,
publishArtifact in packageSrc := false,
// tell sbt to put the jar on main's classpath
// and not the (empty) class directory
exportJars := true,
// set this to not add _<scalaBinaryVersion> to the name
crossPaths := true
)
这种方法允许您更改jar,subA/bin/third-party.jar
并立即使用它,随后publishLocal
它将在本地发布。
如果您希望单独在本地发布它,使其不属于项目,则应subA
将其定义为独立项目。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句