sbt 插件的 ivy/maven 发布的差异
Posted
技术标签:
【中文标题】sbt 插件的 ivy/maven 发布的差异【英文标题】:Differences in ivy/maven publishing for sbt plugin 【发布时间】:2018-02-04 00:21:39 【问题描述】:我有两个 SBT 插件:PluginA 和 PluginB。 PluginA 依赖于 PluginB 中的任务。每当我使用“publishLocal”在本地将 PluginB 发布到“~/.ivy2”时,PluginA 就会工作。虽然当我使用“publishM2”将 PluginB 发布到本地“~/.m2”时依赖关系仍然得到解决,但 PluginA 的编译任务失败:
“对象 xxx 不是包 yyy 的成员”。
我尝试将“publishMavenStyle”设置为 true 和 false,并调整解析器,但都不起作用。
为什么会发生这种情况,有没有办法在以 maven 风格发布时让它工作?
【问题讨论】:
【参考方案1】:这是我的一个错误。我使用 from 错误地添加了插件
addSbtPlugin("com.xxyy" %% "PluginA" % "0.0.2" from "http://internal.repo.com")
虽然找到了POM,所以找到了资源,但是没有找到对应的jar,所以构建会失败。
为了解决这个问题,我在添加插件之前添加了一个解析器
resolvers += "xxyy" at "http://internal.repo.com"
addSbtPlugin("com.xxyy" %% "PluginA" % "0.0.2")
【讨论】:
以上是关于sbt 插件的 ivy/maven 发布的差异的主要内容,如果未能解决你的问题,请参考以下文章
PHP 中持续集成的构建工具(Ant、Ivy、Maven、Phing?)
使用 sbt.version 1.2.8 发布到 nexus 的 Sbt 插件无法由使用 sbt.version >1.2.8 的 sbt 项目解决