Java Gradle API 的 Maven 依赖参数是啥?
Posted
技术标签:
【中文标题】Java Gradle API 的 Maven 依赖参数是啥?【英文标题】:What are the Maven dependency parameters for the Java Gradle API?Java Gradle API 的 Maven 依赖参数是什么? 【发布时间】:2015-03-13 01:49:26 【问题描述】:我正在用 Java 编写 Gradle 插件。为了使用IDE进行开发(尤其是代码完成),我需要在项目的pom.xml
文件中添加org.gradle.api.*
类的依赖信息。
我在哪里可以找到它?
我试过mvnrepository.com,但在那里找不到。
【问题讨论】:
Gradle 项目不会将所有核心库发布到公开可用的存储库(例如,您可能需要未发布的org.gradle.gradle-model
)。无法保证您可以使用 Maven 构建 Gradle 插件。
@BenjaminMuschko 这还是一件事吗?在这种情况下,在 IDE 中工作时应该如何解决这种依赖关系?
【参考方案1】:
经过较长时间的搜索,我找到了这个神器:https://mvnrepository.com/artifact/org.gradle/gradle-core/2.2.1
<dependency>
<groupId>org.gradle</groupId>
<artifactId>gradle-core</artifactId>
<version>2.2.1</version>
</dependency>
工件在以下存储库中可用:http://repo.springsource.org/libs-release-remote/
<repository>
<id>Spring Source Libs</id>
<url>http://repo.springsource.org/libs-release-remote/</url>
</repository>
将存储库添加到 pom.xml 中的存储库部分以及作为依赖项的工件。我在 Eclipse 工作区中使用 Maven 项目对其进行了测试 - org.gradle.api.* 类可用,我还可以浏览 gradle-core 源代码。
【讨论】:
【参考方案2】:如果您想在 Maven pom 中使用官方 Gradle Releases 存储库,请尝试以下操作:
<dependencies>
<dependency>
<groupId>org.gradle</groupId>
<artifactId>gradle-core</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.gradle</groupId>
<artifactId>gradle-tooling-api</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.gradle</groupId>
<artifactId>gradle-base-services</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.gradle</groupId>
<artifactId>gradle-base-services-groovy</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.10</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>repo.gradle.org</id>
<url>https://repo.gradle.org/gradle/libs-releases-local/</url>
</repository>
</repositories>
【讨论】:
【参考方案3】:使用这个:
dependencies
//we will use the Groovy version that ships with Gradle:
compile localGroovy()
//our plugin requires Gradle API interfaces and classes to compile:
compile gradleApi()
【讨论】:
谢谢,但这不是问题所在。我可以使用 Gradle 成功构建插件,但我希望能够使用 Maven 构建它,以便 IntelliJ Idea 可以解析 Gradle API 类并支持代码完成。 他在寻找pom.xml
的依赖。
抱歉,我漏掉了...你为什么要在 Maven 中编写 Gradle 插件? :S IntelliJ 也支持 Gradle。
IntelliJ 也支持 Gradle:那我怎样才能让 IntelliJ Idea 识别类 org.gradle.api.*
?我已经有一个 Maven 插件,可以进行代码质量检查。现在我想创建一个 Gradle 插件,它在 Gradle 中执行相同的检查。见github.com/teamed/qulice。
Gradle 支持我的意思是你可以创建一个 Gradle 项目,添加我发布的块,IntelliJ 应该编译项目。【参考方案4】:
对于那些在 2016 年(可能更晚)阅读本文的人。
工件在JCenter:org.gradle:gradle-core中可用,无需添加任何“自定义”repositories
。
所以,你需要做的就是:
repositories
jcenter()
dependencies
compile 'org.gradle:gradle-core:2.14.1'
// compile 'org.codehaus.groovy:groovy-all:2.4.4'
【讨论】:
【参考方案5】:根据我的经验,截至 Summer'19,最新的工件发布在以下存储库中:
repositories
maven
url "https://repo.gradle.org/gradle/libs-releases-local"
dependencies
compileOnly "org.gradle:gradle-core:5.5.1"
【讨论】:
目前只支持6.1.1
:(以上是关于Java Gradle API 的 Maven 依赖参数是啥?的主要内容,如果未能解决你的问题,请参考以下文章
错误:没有这样的属性:类的组:org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer
Error:(2, 0) Cause: org/gradle/api/publication/maven/internal/DefaultMavenFactory