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 依赖参数是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Gradle 简记

错误:没有这样的属性:类的组:org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer

Error:(2, 0) Cause: org/gradle/api/publication/maven/internal/DefaultMavenFactory

将Java项目从maven迁移到gradle

将Java项目从maven迁移到gradle

java+构建+工具+Ant+Maven+Gradle