首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何与预期的JDK版本一起指定sbt依赖项

如何与预期的JDK版本一起指定sbt依赖项
EN

Stack Overflow用户
提问于 2015-01-13 09:41:23
回答 1查看 400关注 0票数 1

如何在Build.sbt中指定依赖项的JDK版本

我在Aspose库中遇到了这样的情况,其中文件名是用JDK版本(即aspose-email-4.8.0-jdk17.jar而不是普通的aspose-email-4.8.0.jar )发布的。因此,通常指定依赖项。

代码语言:javascript
复制
"com.aspose" % "aspose-email" % "4.8.0"

当错误的sbt试图下载一个不存在的文件时,将导致SBT发出以下错误的抱怨:

代码语言:javascript
复制
[warn]  [FAILED     ] com.aspose#aspose-email;4.8.0!aspose-email.jar:  (0ms)
[warn] ==== local: tried
[warn]   /Users/developer/.ivy2/local/com.aspose/aspose-email/4.8.0/jars/aspose-email.jar
[warn] ==== public: tried
[warn]   https://repo1.maven.org/maven2/com/aspose/aspose-email/4.8.0/aspose-email-4.8.0.jar
[warn] ==== Aspose: tried
[warn]   http://maven.aspose.com/artifactory/simple/ext-release-local/com/aspose/aspose-email/4.8.0/aspose-email-4.8.0.jar
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::              FAILED DOWNLOADS            ::
[warn]  :: ^ see resolution messages for details  ^ ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: com.aspose#aspose-email;4.8.0!aspose-email.jar
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
sbt.ResolveException: download failed: com.aspose#aspose-email;4.8.0!aspose-email.jar

然后,我发现将版本附加到版本号中可能会修复它:

代码语言:javascript
复制
"com.aspose" % "aspose-email" % "4.8.0-jdk17"

不幸的是,它会导致另一个错误,因为SBT认为POM文件位于aspose-email-4.8.0-jdk17.pom,而应该是aspose-email-4.8.0.pom

代码语言:javascript
复制
[info] Resolving com.aspose#aspose-email;4.8.0-jdk17 ...
[warn]  module not found: com.aspose#aspose-email;4.8.0-jdk17
[warn] ==== local: tried
[warn]   /Users/ganeshwara/.ivy2/local/com.aspose/aspose-email/4.8.0-jdk17/ivys/ivy.xml
[warn] ==== public: tried
[warn]   https://repo1.maven.org/maven2/com/aspose/aspose-email/4.8.0-jdk17/aspose-email-4.8.0-jdk17.pom
[warn] ==== Aspose: tried
[warn]   http://maven.aspose.com/artifactory/simple/ext-release-local/com/aspose/aspose-email/4.8.0-jdk17/aspose-email-4.8.0-jdk17.pom
[info] Resolving net.sf.proguard#proguard-base;5.1 ...
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: com.aspose#aspose-email;4.8.0-jdk17: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn] 
[warn]  Note: Unresolved dependencies path:
[warn]    com.aspose:aspose-email:4.8.0-jdk17 (/Users/ganeshwara/DropMyEmail/backup-server/project/Build.scala#L290)
[warn]      +- Dropmysite:common_2.11:1.0-296020c84e74fa1fd65cd5361b563519ff9c4a5d
sbt.ResolveException: unresolved dependency: com.aspose#aspose-email;4.8.0-jdk17: not found

我认为,如果您查看存储库,就会发现问题是由于不同的命名约定造成的--在这种情况下,jarfile是用预期的JDK版本进行修改的,而POM文件则不是。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-13 09:44:52

在googling之后,我发现Maven实际上有一个可选的额外坐标,分类器,它就在版本号(来源)后面。

要在sbt中使用它,应该将依赖项定义为

代码语言:javascript
复制
"com.aspose" % "aspose-email" % "4.8.0" classifier "jdk17"

(来源)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27919020

复制
相关文章

相似问题

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