我需要一些帮助来理解为什么我的build.gradle不会将本地引用的jar复制到其缓存中。在Windows上,我希望在C:\ Users \ myusername .gradle中看到jar,其他JAR确实存在。
我无法在IntelliJ中导入此JAR,因为它找不到它。
附带问题:有没有人弄清楚如何调试Gradle的DSL?我设置了远程调试,IntelliJ永远不会遇到我的断点。它没有复选框,所以我猜IDE不认为它是代码。
对我来说,很少有事情没有意义:
1. gradle dependencies --configuration compile
\--- com.google.guava:guava:23.5-jre
+--- com.google.code.findbugs:jsr305:1.3.9
....
MY_JAR_1.0.1.jar is not present.
2. gradle copyDependencies - this task finds and copies it.
task copyDependencies(type: Copy) {
from configurations.compile
into 'dependencies'
}
3. This task also finds my jar.
task listcompile << {
configurations.compile.each { File file -> println file.name }
}
Why does #1 not find it?
apply plugin: 'java'
repositories {
mavenCentral()
//flatDir {
// dirs 'customlibs'
//}
}
dependencies {
compile group: 'com.google.guava', name: 'guava', version: '23.5-jre'
compile files('customlibs/MY_JAR_1.0.1.jar')
}
task listcompile << {
configurations.compile.each { File file -> println file.name }
}
// copy all dependencies into this folder
task copyDependencies(type: Copy) {
from configurations.compile
into 'dependencies'
}
答案 0 :(得分:1)
似乎Gradle的dependencies
任务只显示具有已定义组的模块:name:version coordinate。您正在直接添加文件,没有关联的标识符。
您可以做的是添加一个平面目录存储库并将您的自定义JAR声明为普通依赖项,如下所示:
repositories {
flatDir {
dirs 'customlibs'
}
}
dependencies {
compile ':MY_JAR:1.0.1'
}
您需要重命名JAR,使其与Maven / Gradle的命名约定相匹配,即 MY_NAME-1.0.1.jar (用连字符替换最后一个下划线)。