这些是我遵循的步骤:
sbt publishLocal
。为了测试它,在项目的plugins.sbt
文件中,我已将addSbtPlugin("company" % "some-plugin" % "0.6.5")
更改为:
lazy val root = project.in(file(“。”))。dependsOn(somePlugin)
lazy val somePlugin = project.in(file(System.getProperty(“user.home”)+“/ customPath /”))
但是SBT
无法以这种方式编译插件,因为它找不到插件的已使用插件,即使我已经能够。
我也尝试引用~/.sbt/local/....
,即publishLocal
放置已编译插件的目录,但没有成功。我不知道我必须准确引用什么(文件夹,生成的.jar
,ivy.xml
文件,...)。
问题:
注意:
答案 0 :(得分:1)
解决方案很简单。我按照这个步骤:
organization
以使其独一无二,而不是与原作者发生冲突。我使用organization := com.github.myuser
bintray
创建了一个帐户,并点击了this guide以便使用sbt publish
plugins.sbt
中添加此行来导入我的自定义插件:addSbtPlugin("com.github.myuser" % "myplugin" % "1.0")
如果我犯了一个错误并且不想增加版本,我会这样做:
sbt; bintray :: unpublish; publish
速度很快,我不得不等几秒钟。我知道没有其他人在使用我的插件。
也许publishLocal
更好,不需要使用第三方存储库,但我不知道它是如何工作的。这对我有用。
答案 1 :(得分:1)
更好的解决方案,非常适用于测试未来拉取请求的唯一目的:
sbt publishLocal
reload
将挂起整个JVM。我必须退出SBT
并再次输入。pull request
。建议:使用scripted test framework以便进行有效测试。