加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – SBT – 不要用已发布名称中的连字符替换点

发布时间:2020-12-16 19:23:39 所属栏目:安全 来源:网络整理
导读:我的build.sbt中的项目有这样的配置: name := "test-utils_0.1"organization := "com.my.test.project"version := "0.6.0-SNAPSHOT" 我的问题是 – 当我运行sbt clean publish-local命令时,jar会在.ivy2本地目录中发布为: 测试utils_0-1_2.11 将其更改为te
我的build.sbt中的项目有这样的配置:

name := "test-utils_0.1"
organization := "com.my.test.project"
version := "0.6.0-SNAPSHOT"

我的问题是 – 当我运行sbt clean publish-local命令时,jar会在.ivy2本地目录中发布为:

测试utils_0-1_2.11

将其更改为test-utils_0.1_2.11的最佳方法是什么?

UPDATE
我也试图用这种方式修改build.sbt的artifactName属性:

name := "test-utils"
organization := "com.my.test.project"
version := "0.6.0-SNAPSHOT"
utilsVersion := "0.1"

artifactName := { (sv: ScalaVersion,module: ModuleID,artifact: Artifact) =>
  artifact.name + "_" + utilsVersion + "_" + sv.binary +  "-" + module.revision + "." + artifact.extension
}

我得到了名为test-utils_0.1_2.11.jar的jar,但这并没有改变我的repo中的发布名称(它仍然使用name属性发布,即test-utils_2.11 / 0.6.0-快照/测试utils_2.11.jar)

解决方法

替换.与artifact.name.replace(“.”,“_”)中的_在artifact.name中:

artifactName := { (sv: ScalaVersion,artifact: Artifact) =>
  artifact.name.replace(".","_") + "_" + utilsVersion + "_" + sv.binary +  "-" + module.revision + "." + artifact.extension
}

如果您想自定义路径的其他部分,请使用以下内容:

def customStyleBasePattern = "[organisation]/[module](_[scalaVersion])(_[sbtVersion])/[revision]/[artifact]-[revision](-[classifier]).[ext]"
  val ivyLocal = Resolver.file("local",file(Path.userHome.absolutePath + "/.ivy2/local2"))(Patterns(Nil,customStyleBasePattern :: Nil,true))

  externalResolvers += ivyLocal

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读