首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将插件的插件依赖性添加为用户的插件依赖

将插件的插件依赖性添加为用户的插件依赖
EN

Stack Overflow用户
提问于 2018-02-05 12:49:26
回答 1查看 330关注 0票数 2

我正在创建一个SBT插件,用于我公司的所有Scala项目。它是一组常用的SBT插件和一个可以在任何地方共享的公共配置。我的插件使用例如sbt-release:配置凭据、设置发布过程、默认发布库等。因此,我将其添加为插件依赖项。

project/plugins.sbt

代码语言:javascript
复制
addSbtPlugin("com.github.gseitz" % "sbt-release" % "1.0.7")

但是,我想向我的用户公开这个插件,这样他们就可以调用sbt release了。目前,我有以下代码:

build.sbt

代码语言:javascript
复制
sbtPlugin := true

/* common release configuration code */

addSbtPlugin("com.github.gseitz" % "sbt-release" % "1.0.7")

如果删除最后一行,我的用户将无法调用sbt release。但是,我希望避免两次声明依赖项。我能做得更好吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-06 23:18:26

我采用了一种不同的方法,因为配置甚至没有以这种方式应用,而且它还解决了重复问题。而不是sbt文件,我为插件创建了Scala文件,并在build.sbt中包含了所需的插件依赖项。这样,您根本不需要将它添加到project/plugins.sbt中。

示例:

build.sbt

代码语言:javascript
复制
sbtPlugin := true

addSbtPlugin("com.github.gseitz" % "sbt-release" % "1.0.7")

src/main/scala/mycompany/MyReleaseConfigPlugin.scala

代码语言:javascript
复制
package mycompany

import sbt._
import Keys._

object MyReleaseConfigPlugin extends AutoPlugin {
  override def trigger: PluginTrigger = allRequirements
  override def requires = sbtrelease.ReleasePlugin

  /* common release configuration code example */
  import sbtrelease.ReleasePlugin.autoImport._
  import ReleaseTransformations._
  override lazy val projectSettings = Seq(
    releaseProcess := Seq[ReleaseStep](
      checkSnapshotDependencies,
      inquireVersions,
      runClean,
      setReleaseVersion,
      commitReleaseVersion,
      tagRelease,
      publishArtifacts),
    releaseIgnoreUntrackedFiles := false,
    publishMavenStyle := true,
    credentials += Credentials(
      "Artifactory Realm",
      "artifactory.mycompany.com",
      sys.env.get("REPO_USER").getOrElse(""),
      sys.env.get("REPO_PASS").getOrElse(""))
  )
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48622991

复制
相关文章

相似问题

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