gpt4 book ai didi

scala - sbt:如何解决使用Maven属性的Maven依赖项

转载 作者:行者123 更新时间:2023-12-04 17:54:39 27 4
gpt4 key购买 nike

例如:

lazy val someProject = project
.settings(
scalaVersion := "2.12.3",
libraryDependencies += "org.jcuda" % "jcuda" % "0.8.0"
)

上面的方法无法解决:
sbt:someProject> update
[info] Updating ...
[info] downloading https://repo1.maven.org/maven2/org/jcuda/jcuda/0.8.0/jcuda-0.8.0.jar ...
[warn] Detected merged artifact: [NOT FOUND ] org.jcuda#jcuda-natives;0.8.0!jcuda-natives.jar (16ms).
[warn] ==== public: tried
[warn] https://repo1.maven.org/maven2/org/jcuda/jcuda-natives/0.8.0/jcuda-natives-0.8.0-${jcuda.os}-${jcuda.arch}.jar
[info] [SUCCESSFUL ] org.jcuda#jcuda;0.8.0!jcuda.jar (227ms)
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: FAILED DOWNLOADS ::
[warn] :: ^ see resolution messages for details ^ ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: org.jcuda#jcuda-natives;0.8.0!jcuda-natives.jar
[warn] ::::::::::::::::::::::::::::::::::::::::::::::

请注意错误消息中出现的 ${jcuda.os}

最佳答案

解决方法是,可以设置自定义设置,并将Maven属性的值提供为JVM属性:

lazy val mavenProps = settingKey[Unit]("workaround for Maven properties")
lazy val jcudaOs = settingKey[String]("")
lazy val jcudaArch = settingKey[String]("")
lazy val someProject = project
.settings(
scalaVersion := "2.12.3",
libraryDependencies += "org.jcuda" % "jcuda" % "0.8.0",
jcudaOs := "linux",
jcudaArch := "x86_64",
mavenProps := {
sys.props("jcuda.os") = jcudaOs.value
sys.props("jcuda.arch") = jcudaArch.value
()
}
)

这会将缺少的Maven属性拆分为sbt设置,然后在构建的加载时将它们转换为 sys.props

关于scala - sbt:如何解决使用Maven属性的Maven依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46763741/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com