You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Gradle模块作为依赖引入Maven项目使用

Gradle模块作为依赖引入Maven项目的实现方案

以下是生产环境常用的3种可落地方案,按推荐优先级排序:

方案1:发布到本地Maven仓库(本地调试首选)

  • 第一步:在待引入的Gradle模块的构建配置文件中添加Maven发布插件。如果使用Groovy DSL(build.gradle)添加如下配置:
plugins {
    id 'java' // 如果是Android库模块替换为id 'com.android.library'
    id 'maven-publish'
}

publishing {
    publications {
        maven(MavenPublication) {
            // 自定义依赖坐标,Maven侧引用时要和这里完全一致
            groupId = 'com.custom.group'
            artifactId = 'gradle-business-module'
            version = '0.0.1-snapshot'
            // Java模块用下面这行,直接发布java组件
            from components.java
            // Android库模块注释掉上面一行,用下面这行发布release构建产物
            // from components.release
        }
    }
    repositories {
        mavenLocal() // 发布目标为本地Maven仓库,默认路径为用户目录下的.m2/repository
    }
}

如果使用Kotlin DSL(build.gradle.kts),配置逻辑一致,仅语法做对应调整即可。

  • 第二步:在Gradle项目根目录执行发布命令:
    • macOS/Linux系统执行:./gradlew publishToMavenLocal
    • Windows系统执行:gradlew.bat publishToMavenLocal
  • 第三步:直接在Maven项目的pom.xml中添加对应坐标的依赖即可,和引用普通Maven依赖没有区别,Maven默认会优先扫描本地仓库的包:
<dependency>
    <groupId>com.custom.group</groupId>
    <artifactId>gradle-business-module</artifactId>
    <version>0.0.1-snapshot</version>
</dependency>

*注意:该方案无需搭建额外服务,修改Gradle模块代码后重新执行发布命令,Maven侧就能拉到最新代码,适合本地开发调试场景。

方案2:发布到远程Maven仓库(团队协作/生产环境首选)

如果需要团队其他成员、或者CI/CD环境也能引用这个Gradle模块,优先用这个方案:

  • 配置逻辑和发本地仓库几乎一致,仅需要把发布目标仓库替换为你可访问的Maven仓库(公司内部搭建的Nexus/Artifactory、或者公共Maven仓库均可),补充仓库认证信息即可,示例配置:
publishing {
    publications {
        maven(MavenPublication) {
            groupId = 'com.custom.group'
            artifactId = 'gradle-business-module'
            version = '1.0.0-release'
            from components.java
        }
    }
    repositories {
        maven {
            url = uri("http://your-internal-nexus/repository/maven-releases/")
            // 认证信息建议写在全局gradle.properties中,不要硬编码在构建脚本里
            credentials {
                username = nexusUsername
                password = nexusPassword
            }
        }
    }
}
  • 执行./gradlew publish命令将构建产物推送到远程仓库后,在Maven项目的pom.xml中添加对应远程仓库配置、以及依赖坐标,即可正常引用。
    *注意:如果发布的是正式版本,建议不要重复推送同版本号的包,避免出现依赖缓存不一致的问题。

方案3:直接引用本地构建产物(临时验证场景用)

如果只是临时验证功能,不想做发布配置,可以直接引用Gradle模块编译出的二进制包:

  • 第一步:在Gradle模块目录执行构建命令./gradlew build,构建完成后:
    • Java模块的jar包路径为:模块目录下build/libs/xxx.jar
    • Android库模块的aar包路径为:模块目录下build/outputs/aar/xxx.aar
  • 第二步:在Maven项目根目录新建lib文件夹,把编译好的jar/aar包放进去,在pom.xml中添加本地仓库配置和依赖:
<!-- 配置本地lib目录为依赖仓库 -->
<repositories>
    <repository>
        <id>local-file-repo</id>
        <url>file://${project.basedir}/lib</url>
    </repository>
</repositories>

<!-- 添加依赖 -->
<dependency>
    <groupId>com.custom.group</groupId>
    <artifactId>gradle-business-module</artifactId>
    <version>1.0.0</version>
    <!-- 引用aar包时需要加下面这行指定类型,jar包不需要 -->
    <!-- <type>aar</type> -->
</dependency>

*注意:该方案不会自动传递Gradle模块的间接依赖,如果Gradle模块本身引用了第三方库,需要手动在Maven项目的pom.xml中补充所有间接依赖,否则运行时会出现类缺失错误,不建议在正式项目中长期使用。


内容的提问来源于stack exchange,提问作者Pkumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 10:18:07