gpt4 book ai didi

Gradle +PlayFramework : Cannot resolve sources dependency

转载 作者:行者123 更新时间:2023-12-02 03:23:19 25 4
gpt4 key购买 nike

我正在使用 Gradle 2.7 中新的 Play Framework 支持。

讽刺的是,Play 2.3.x 明确依赖于 org.scala-sbt:io:0.13.8

如果我添加,Gradle 能够从 typesafe 的存储库解析 JAR(不是源,只是类)

型号{
成分 {
玩 {
平台 Play :“2.3.7”,scala:“2.10”,java:“1.7”
}
}
}
存储库{
行家{
名称“typesafe-maven-release”
网址“https://repo.typesafe.com/typesafe/maven-releases”
}
Ivy {
名称“typesafe-ivy-release”
网址“https://repo.typesafe.com/typesafe/ivy-releases”
布局“ Ivy ”
}
}
依赖项{
Play 组:“org.scala-sbt”,名称:“io”,版本:“0.13.8”,分类器:“jar”,配置:“compile”
}

但是它似乎无法解析io-sources.jar。我明白了:

FAILURE: Build failed with an exception.

我实际上并不关心这些来源,我只是想在运行gradlew runPlay时避免这个运行时异常

Execution exception [RuntimeException: java.lang.NoClassDefFoundError: sbt/Path$]

有什么建议吗?我似乎无法弄清楚如何排除或解决源依赖性。

最佳答案

我在 Play 2.4 和 Gradle 2.7 中遇到了相同的 RuntimeException (NoClassDefFound sbt/Path$)。就我而言,根本问题是没有正确定义所有存储库(不包括 typesafe-ivy -> sbt-io 未解决 -> 认为我需要声明 sbt-io-dependency -> 错误的 sbt-io 导致提到异常(exception)...)。

我建议您添加 jcenter() 作为存储库,删除对 sbt 的显式依赖,并在 build.gradle 中声明 Play 版本。作为一个例子,我的工作 gradle.build:

plugins {
id 'play'
}
dependencies {
repositories {
jcenter()
maven {
name "typesafe-maven-release"
url "https://repo.typesafe.com/typesafe/maven-releases"
}
ivy {
name "typesafe-ivy-release"
url "https://repo.typesafe.com/typesafe/ivy-releases"
layout "ivy"
}
}
play 'com.typesafe.play:play-jdbc_2.11:2.4.3'
[...other dependencies - but not "org.scala-sbt"!]
}

model {
components {
play {
platform play: '2.4.3', scala: '2.11'
injectedRoutesGenerator = true
}
}
}

在你的情况下,最后一部分应该是:

model {
components {
play {
platform play: '2.3.7', scala: '2.10'
}
}
}

关于 Gradle +PlayFramework : Cannot resolve sources dependency,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32591701/

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