Vin*_*jan 18 gradle maven build.gradle
出于某种原因,我的离岸团队是不是能够从我的客户Artifactory的这是我们组织的依赖库下载工件(依赖)."刷新依赖"触发什么,并给出TIME OUT例外.我看到了,我的"摇篮相关性"被下载到位置"d:/C813507/Gradle/gradle-1.11/bin/caches/modules-2/files-2.1/".我可以将此文件夹压缩并发送给他们吗?他们如何在gradle中实现指向其本地目录的内容.我的构建gradle具有以下行.如何将URL指向Windows操作系统中的本地目录
repositories {
maven {
url 'http://artifactory.myorg.com:8081/artifactory/plugins-release'
}
}
Run Code Online (Sandbox Code Playgroud)
die*_*end 27
如果您无法访问离岸团队,则可以将所需的所有依赖项jar复制到单个目录中,然后使用flatDir存储库.
repositories {
flatDir {
dirs 'D:/path/to/local/directory'
}
}
dependencies {
compile name: 'name-of-jar'
}
Run Code Online (Sandbox Code Playgroud)
不使用flatDir存储库的另一种方法是:
dependencies {
compile files('/path/to/dir/something_local.jar')
}
Run Code Online (Sandbox Code Playgroud)
Ale*_*pov 21
flatDir您可以maven按如下方式声明本地存储库,而不是配置存储库:
repositories {
maven {
url 'file://D:/path/to/local/directory'
}
}
Run Code Online (Sandbox Code Playgroud)
正如@Peter Niederwieser所提到的,flatDir存储库不支持传递依赖性解析.maven本地存储库.
mk.*_*k.. 12
使用如下所示的 flatDir 是一种选择:
repositories {
flatDir {
dirs 'D:/path/to/local/directory'
}
}
Run Code Online (Sandbox Code Playgroud)
这有效。但是如果存在 mavenCentral() 或其他包含相同 JAR 的 maven 存储库,则 maven 存储库将优先于 flatDir。
Gradle 文档摘录:https : //docs.gradle.org/current/userguide/repository_types.html
Gradle 将根据工件的存在动态生成模块描述符(没有任何依赖信息)。但是,由于 Gradle 更喜欢使用其描述符是从真实元数据创建而不是生成的模块,因此不能使用平面目录存储库来覆盖具有来自其他存储库的真实元数据的工件。例如,如果 Gradle 在平面目录存储库中仅找到 jmxri-1.2.1.jar,但在另一个支持元数据的存储库中找到 jmxri-1.2.1.pom,它将使用第二个存储库提供模块。
所以 flatDir 不好。我们应该使用第二个答案中提到的本地 Maven 存储库。但是第二个答案有几个问题
我们可以通过使用如下解决方案来解决这些问题:
gradle build没有任何问题)repositories {
maven {
url uri("${projectDir}/libs")
}
mavenLocal()
<All your Repos here>
mavenCentral()
}
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以确保即使 JAR 存在于其他存储库中,它也只会从您的本地目录中选取,并且该解决方案也是可移植的。
| 归档时间: |
|
| 查看次数: |
30514 次 |
| 最近记录: |