gpt4 book ai didi

maven - 从 Maven 加载 Gradle 依赖项

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

我是 gradle 的新手。

我看过一些关于 java 依赖的例子,比如下面的例子,但我的项目只是一个 zip 文件。我只想下载 zip 文件。

apply plugin: 'java'
dependencies {
compile 'commons-lang:commons-lang:2.6'
}

在上面的例子中,它会自动下载jar文件。但如果我的 Maven 存储库包含 pom.xml 中提到的关于该包的 zip,它不会下载我的 zip 文件。

问题:

  1. 依赖 maven 存储库时的流程是什么?它会先读取 pom.xml 然后下载 zip 文件吗?

  2. 如何动态加载依赖?例如 'commons-lang:commons-lang:2.6' 将在 pom.xml 中具有 'commons-lang:en:1.0"的依赖项。如何使其自动加载和循环依赖项列表?

谢谢大家

我已经尝试了以下脚本,但它在编译时给了我错误,但我已经应用了 java 插件

我的gradle文件

apply plugin: 'java'
repositories {
mavenLocal()
maven {
url "http://nexus.com/myrepo/"
}
}
dependencies {
compile 'com.a.b:projectA:2.0@zip'
}

我可以毫无问题地运行,因为下载的文件在 .m2 中

关于传递依赖的问题

我有这样的 pom.xml。但是它无法加载依赖项。如果我这样说,它会先直接转到新的 pom.xml 还是直接下载 zip?

   <dependencies> 
<dependency>
<groupId>com.a.b.c</groupId>
<artifactId>base</artifactId>
<version>1.2</version>
<type>zip</type>
</dependency>
</dependencies>

最佳答案

  • 当声明依赖关系和 maven 存储库时,这个 maven 存储库将用于解析 Artifact 。这意味着通常首先读取元数据,然后下载 Artifact 。如果没有声明存储库,则解析将提前失败。

有像你这样的依赖符号:

dependencies {
compile 'commons-lang:commons-lang:2.6'
}

gradle 解析该依赖项的默认 Artifact 。如果你想解析来自 maven central 的额外声明的 zip 文件,你必须使用这种表示法

repositories{
mavenCentral()
}

dependencies {
compile 'commons-lang:commons-lang:2.6@zip'
}
  • 默认情况下,a 依赖项是可传递的。这意味着,如果例如 'commons-lang:commons-lang:2.6' 在其 pom.xml 中依赖于 'commons-lang:en:1.0",则 commons-lang 库(以及它的传递依赖项,如果有的话)是也解决了。

干杯,

雷内

关于maven - 从 Maven 加载 Gradle 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19827889/

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