首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将jar发布到本地仓库?

如何将jar发布到本地仓库?
EN

Stack Overflow用户
提问于 2011-10-18 03:50:19
回答 6查看 57.7K关注 0票数 63

我有一个编译成jar的库(不是sbt项目,没有源代码,只有jar文件),这在存储库中是不可用的。

有没有一种方法可以在本地发布jar,以便我可以使用libraryDependencies += "org.xxx" % "xxx" % "1.0"表示法添加依赖项?(我已经知道如何通过将文件复制到lib文件夹来将文件添加到项目中。)

EN

回答 6

Stack Overflow用户

发布于 2012-08-24 22:04:04

publishLocal操作用于将您的项目发布到本地常春藤存储库。默认情况下,此本地存储库位于${user.home}/.ivy2/local。然后,您可以在同一台计算机source上的其他项目中使用此项目

编辑:对不起,我误解了你的问题。这是一个将jar或源代码发布到本地常春藤资源库的example

票数 60
EN

Stack Overflow用户

发布于 2014-10-23 23:56:23

tl;dr我认为这是一种技巧,而不是sbt的特性。我已经警告过你了。

假设您有要发布的file.jar。与任何构建工具(包括sbt )一样,它的目的是执行最终在项目文件之外创建工件的任务-在大多数情况下是jar文件。

该项目为工件设置坐标。

诀窍是利用sbt所需的来为要发布的jar设置环境(=坐标)(否则,您必须在命令行中指定它们,这可能是用户友好的,也可能是不友好的)。

使用必要的设置- organizationnameversion和可能的scalaVersion -创建一个build.sbt,并将其保存在jar文件所在的位置。

代码语言:javascript
复制
organization := "org.abc"

name := "my-own-publish-jar"

version := "1.0.0"

scalaVersion := "2.11.3"

packageBin in Compile := file(s"${name.value}_${scalaBinaryVersion.value}.jar")

您可能已经注意到,构建会将compile:package任务更改为指向jar文件。

就这样。

执行sbt publishLocal,jar文件应该在Ivy2本地存储库中,即~/.ivy2/local/org.abc/my-own-publish-jar_2.11/1.0.0/jars/my-own-publish-jar_2.11.jar

protip编写一个在命令行上指定坐标的插件现在应该很容易了。

票数 35
EN

Stack Overflow用户

发布于 2015-12-21 03:45:28

假设您有wetElephant.jarwetElephant-javadoc.jar文件、一些第三方库和相应的javadoc,您希望将它们发布到本地存储库,并使用libraryDependencies sbt taskKey从另一个项目中引用它们。

这是你需要做的。

  1. 将您的库(wetElephant.jarwetElephant-javadoc.jar)放入build.sbt文件(或Build.scala文件)中的modules\wetElephant
  2. Define项目中

lazy val stolenLib =项目.in(文件(“modules/wetElephant”)) .settings(组织:= "com.stolenLibs",名称:= "wetElephant",version := "0.1-IDonKnow",crossPaths := false,//不要在repo publishMavenStyle := true中将scala版本添加到此工件,autoScalaLibrary := false,//don't attach scala lib as dependency :=“用于将依赖项发布到maven存储库的项目,使用'sbt publishLocal‘安装它”,packageBin in Compile := baseDirectory.value / s"${name.value}.jar",packageDoc in Compile := baseDirectory.value / s"${name.value}-javadoc.jar“)

  • 从sbt/激活器中调用publishLocal任务(我是从激活器中调用的,并以项目名称为前缀):

./激活器湿wetElephant/publishLocal

..。并阅读输出以查看发布的内容和位置:

代码语言:javascript
复制
    /cygdrive/d/devstation-workspace/projects/m4l-patches 1
      [info] Loading project definition from D:\devstation-workspace\projects\m4l-patches\project
      [info] Set current project to m4l-patches (in build file:/D:/devstation-workspace/projects/m4l-patches/)
      [info] Updating {file:/D:/devstation-workspace/projects/m4l-patches/}wetElephant...
    [info] Packaging D:\devstation-workspace\projects\m4l-patches\modules\wetElephant\target\wetelephant-0.1-IDonKnow-sources.jar ...
    [info] Done packaging.
    [info] Wrote D:\devstation-workspace\projects\m4l-patches\modules\wetElephant\target\wetelephant-0.1-IDonKnow.pom
      [info] Resolving org.fusesource.jansi#jansi;1.4 ...4 ....
    [info] Done updating.
    [info] :: delivering :: com.stolenLibs#wetelephant;0.1-IDonKnow :: 0.1-IDonKnow :: release :: Sun Dec 20 20:09:24 CET 2015
      [info]  delivering ivy file to D:\devstation-workspace\projects\m4l-patches\modules\wetElephant\target\ivy-0.1-IDonKnow.xml
      [info]  published wetelephant to C:\Users\pawell\.ivy2\local\com.stolenLibs\wetelephant\0.1-IDonKnow\poms\wetelephant.pom
      [info]  published wetelephant to C:\Users\pawell\.ivy2\local\com.stolenLibs\wetelephant\0.1-IDonKnow\jars\wetelephant.jar
      [info]  published wetelephant to C:\Users\pawell\.ivy2\local\com.stolenLibs\wetelephant\0.1-IDonKnow\srcs\wetelephant-sources.jar
      [info]  published wetelephant to C:\Users\pawell\.ivy2\local\com.stolenLibs\wetelephant\0.1-IDonKnow\docs\wetelephant-javadoc.jar
      [info]  published ivy to C:\Users\pawell\.ivy2\local\com.stolenLibs\wetelephant\0.1-IDonKnow\ivys\ivy.xml
      [success] Total time: 1 s, completed 2015-12-20 20:09:24

  1. 可以选择在其他项目中使用这些库

libraryDependencies += "com.stolenLibs“% "wetElephant”% "0.1-IDontKnow"

免责声明:我不知道如何不发布源代码...

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7798767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档