Scala 如何使用校验和(MD5、SHA1)发布工件?

Scala 如何使用校验和(MD5、SHA1)发布工件?,scala,sbt,jfrog,Scala,Sbt,Jfrog,我想sbt publish用一些校验和来发布我的jar,但是我似乎无法实现这一点 文档说明默认情况下启用校验和,我可以确认checksums在sbt中返回我md5和sha1。如果我执行sbt publishLocal,我还可以看到生成的校验和。但是,当我将JAR发布到我们公司的Artifactory服务器时,在我们的CI服务器上发布sbt时,没有校验和 我错过了什么 更多信息: sbt 1.4.6 publishMavenStyle:=true publishTo:= 我想说这是我公司的人工制

我想
sbt publish
用一些校验和来发布我的jar,但是我似乎无法实现这一点

文档说明默认情况下启用校验和,我可以确认
checksums
在sbt中返回我
md5
sha1
。如果我执行
sbt publishLocal
,我还可以看到生成的校验和。但是,当我将JAR发布到我们公司的Artifactory服务器时,在我们的CI服务器上发布
sbt
时,没有校验和

我错过了什么

更多信息:

  • sbt 1.4.6
  • publishMavenStyle:=true
  • publishTo:=
  • 我想说这是我公司的人工制品特有的,因为
    publishLocal
    运行良好
  • publish/checksums
    返回的内容与just
    checksums
    相同,后者是
    md5
    sha1
    值的列表(就我所能找到的sbt支持的唯一两个值)
  • 我试着关掉Coursier(只是一种预感),它的表现也是一样的
我尝试了调试日志级别,这是构建结束时的内容:

  [debug] Done packaging.
20:27:44
  [debug] CLIENT ERROR: Not Found url=https://<artifactory>/artifactory/maven-local/com/avast/ip-info_2.13/2.8.28/ip-info_2.13-2.8.28.pom
20:27:44
  [info]   published ip-info_2.13 to https://<artifactory>/artifactory/maven-local/com/avast/ip-info_2.13/2.8.28/ip-info_2.13-2.8.28.pom
20:27:44
  [debug] CLIENT ERROR: Not Found url=https://<artifactory>/artifactory/maven-local/com/avast/ip-info_2.13/2.8.28/ip-info_2.13-2.8.28.jar
20:27:44
  [info]   published ip-info_2.13 to https://<artifactory>/artifactory/maven-local/com/avast/ip-info_2.13/2.8.28/ip-info_2.13-2.8.28.jar
20:27:44
  [debug] CLIENT ERROR: Not Found url=https://<artifactory>/artifactory/maven-local/com/avast/ip-info_2.13/2.8.28/ip-info_2.13-2.8.28-sources.jar
20:27:44
  [info]   published ip-info_2.13 to https://<artifactory>/artifactory/maven-local/com/avast/ip-info_2.13/2.8.28/ip-info_2.13-2.8.28-sources.jar
20:27:44
  [success] Total time: 0 s, completed Jan 28, 2021, 7:27:44 PM
[debug]已完成打包。
20:27:44
[调试]客户端错误:找不到url=https:///artifactory/maven-local/com/avast/ip-info_2.13/2.8.28/ip-info_2.13-2.8.28.pom
20:27:44
[信息]发布ip-info_2.13至https:///artifactory/maven-local/com/avast/ip-info_2.13/2.8.28/ip-info_2.13-2.8.28.pom
20:27:44
[调试]客户端错误:找不到url=https:///artifactory/maven-local/com/avast/ip-info_2.13/2.8.28/ip-info_2.13-2.8.28.jar
20:27:44
[信息]发布ip-info_2.13至https:///artifactory/maven-local/com/avast/ip-info_2.13/2.8.28/ip-info_2.13-2.8.28.jar
20:27:44
[调试]客户端错误:找不到url=https:///artifactory/maven-local/com/avast/ip-info_2.13/2.8.28/ip-info_2.13-2.8.28-sources.jar
20:27:44
[信息]发布ip-info_2.13至https:///artifactory/maven-local/com/avast/ip-info_2.13/2.8.28/ip-info_2.13-2.8.28-sources.jar
20:27:44
[成功]总时间:0秒,完成时间:2021年1月28日下午7:27:44

我想我找到了答案。这里的问题是,而不是

例如,我们可以看到,在its中没有
校验和
提及,也没有。然而,看看他们的代码,我看到了
sha-1
md5
工件

浏览一下,我发现:

这让我觉得JFrog把它藏起来了。该决议是:

只需在$ARTIFACTORY\u HOME/etc/ARTIFACTORY.system.properties文件中设置一个属性

  • 将以下属性添加到artifactory.system.properties文件并保存: artifactory.ui.hideChecksums=false

  • 重新启动Artifactory以使更改生效:


  • 我必须承认我没有试过,但这可能是一条线索。

    日志中有任何线索吗?如果将日志级别提高到
    debug
    ,会怎么样?您确定
    publish/checksums
    为真吗?(有时人们会使用一些公司的sbt插件来设置他们不知道的设置。)如果你将自己已经进行的调查和实验的细节包括在内,那么你将有更好的机会获得帮助,从而试图弄清问题的真相。这个问题是你公司的人工制品所特有的吗,或者它发生在任何一种出版中?这个问题是特定回购协议特有的,还是在配置最少的新回购协议中可以重现?我们使用的是JFrog Artifactory版本6.23.7。我真的无法创建新的回购协议来测试任何东西,但同一个Maven回购协议中还有其他项目具有校验和-但这些都是使用Gradle构建的。是的,我确实使用公司的sbt插件为我设置某些东西,但我是它们的创建者,所以我知道它们在做什么,并且没有任何特殊的东西可以阻止创建校验和。