我面临的问题与gradle构建有关。我想解释一下我在做什么。 我在远程服务器上创建了一个远程存储库,我可以从浏览器访问它(我保留了一些依赖项Jars的共享文件夹)。 现在我想在build.gradle中使用该远程存储库(就像远程maven存储库一样),所以我添加了这样的代码片段:
apply plugin: 'maven'
repositories{
maven {
//URL of the remote repository
url "http://IP:Port/SharedPath"
}
}
dependencies {
//Dependencies which are there in remote repository.
compile group: "GroupName", name: "DependencyName", version: "Version"
compile group: "GroupName1", name: "DependencyName1", version: ""
}
当我运行gradle build时,我收到如下错误消息:
FAILURE: Build failed with an exception.
* What went wrong:
Could not resolve all dependencies for configuration ':compileClasspath'.
> Could not find :cachedb.jar:.
Searched in the following locations:
http://IP:Port/SharedPath/GroupName/DependencyName/Version/DependencyName-Version.pom
http://IP:Port/SharedPath/GroupName/DependencyName/Version/DependencyName-Version.jar
Required by:
:site-export-tool:unspecified
> Could not find :cachejdbc:.
Searched in the following locations:
http://IP:Port/SharedPath/GroupName1/DependencyName1//DependencyName1-.pom
http://IP:Port/SharedPath/GroupName1/DependencyName1//DependencyName1-.jar
Required by:
:site-export-tool:unspecified
我不明白为什么它会在路径上搜索文件: url / GroupName / DependencyName / Version / DependencyName-Version.jar
虽然它应该仅在URL中的路径上检查jar,而不是在 GroupName 和 DependencyName 的名称上的某个文件夹结构下检查...等等简单地说,我不想传递GroupName(这可能吗?) 请注意:我也试过了:
compile files ('lib/DependencyName-Version.jar',
'lib/DependencyName1.jar')
请注意,当我在本地系统中保留这些依赖项并在 flatDir 中定义它们时,我 NOT 在这种情况下遇到任何问题。
我正在尝试使用远程存储库,因为我们组织中的用户希望使用集中位置。 如果我需要对我使用的gradle配置或gradle版本(gradle 2.13)或build.gradle中的任何内容做任何事情,请告诉我。我不明白我在这里做了什么错。从过去2天开始: - (
先谢谢你!
答案 0 :(得分:1)
这是因为当您使用maven {url ".."}
时,gradle需要标准的maven存储库结构,这是
/$groupId[0]/../${groupId[n]/$artifactId/$version/$artifactId-$version.$extension
请参阅https://cwiki.apache.org/confluence/display/MAVENOLD/Repository+Layout+-+Final
要么遵循该结构,要么尝试使用带有自定义布局的Ivy存储库。