人间工作P 人间工作P
主站 (opens new window)
首页
  • Bukkit开发教程
投喂
关于
  • 分类
  • 标签
  • 时间线
  • 友情链接

人间工作P

我每天都好困… 最近在学习和进行 VOCALOID 创作
主站 (opens new window)
首页
  • Bukkit开发教程
投喂
关于
  • 分类
  • 标签
  • 时间线
  • 友情链接
  • Gradle 的一些小技巧

    • Maven 仓库添加
      • 依赖添加
      MrXiaoM
      2025-08-28
      Gradle
      目录

      Gradle 的一些小技巧

      讲一点自己的心得

      整理一些小技巧,不定期更新。以 kotlin dsl (build.gradle.kts) 为主。

      # Maven 仓库添加

      一般来说,我们通常直接在 repositories 里添加仓库,越在前面的优先级越高。

      repositories {
          maven("https://mirrors.huaweicloud.com/repository/maven/")
          mavenCentral()
      }
      
      1
      2
      3
      4

      但是,一些仓库在不同地区的速度不同,例如上述的华为云镜像在 Github Actions 上的效果就不一定有 Maven Central 官方仓库好。当我们需要这个项目仅在中国地区的机器上运行时使用该仓库,可以使用 java.util.Locale 实现这个功能。

      import java.util.Locale
      
      repositories {
          if (Locale.getDefault().country == "CN") {
              maven("https://mirrors.huaweicloud.com/repository/maven/")
          }
          mavenCentral()
      }
      
      
      1
      2
      3
      4
      5
      6
      7
      8
      9

      # 依赖添加

      实际上,依赖可以使用以下三种格式

      dependencies {
          // 这两种适用于一般情况
          配置名(group="分组", name="构件名", version="版本", classifier="分类", ext="扩展名")
          配置名("分组:构件名:版本:分类@扩展名")
          // 这种适用于在 subprojects 块中,也就是项目还在早期加载阶段,出不来配置名补全的时候使用
          add("配置名", "分组:构件名:版本:分类@扩展名")
      }
      
      1
      2
      3
      4
      5
      6
      7

      我们最常用的是以下格式

      配置名("分组:构件名:版本:分类@扩展名")
      // 例如
      compileOnly("com.google.code:gson:2.8.0")
      
      1
      2
      3

      其中,分类默认为"",扩展名默认为"jar",这俩可以不输入。

      最终会将组名的.替换为/,下载 组名/构件名/版本/构件名-版本(-分类).扩展名 这个文件,例如上述的 gson 为 com/google/code/gson/2.8.0/gson-2.8.0.jar。

      分类通常用于 shadowJar (opens new window),例如通过 shadow 打包的文件名都会有个 -all 结尾,这个 all 就是分类。

      为什么我要研究这个呢?因为我在 lumine 的仓库遇到了这玩意 (opens new window)。

      org/spigotmc/spigot-1.7.10/dev/spigot-1.7.10-dev.8.jar

      别看了,Nexus Repository 给的 Usage 是错的,在这种情况下,特别还是不知道上面这些知识的时候,你要怎么引用这个依赖?

      了解以上的知识后,就可以反向猜出

      • 分组为 org.spigotmc
      • 构件名为 spigot-1.7.10
      • 版本为 dev
      • 扩展名为 8.jar

      是的,扩展名为 8.jar,这是哪个神人想出来这样发版的,给我气笑了。最终可以这样在 Gradle 添加依赖。

      compileOnly(group="org.spigotmc", name="spigot-1.7.10", version="dev", ext="8.jar")
      compileOnly("org.spigotmc:spigot-1.7.10:dev@8.jar")
      add("compileOnly", "org.spigotmc:spigot-1.7.10:dev@8.jar")
      
      1
      2
      3
      编辑 (opens new window)
      #Gradle#Java#编程
      上次更新: 2025/08/28, 20:45:16
      最近更新
      01
      中国气象局 天气预报API汇总
      08-31
      02
      便携式可移动开发环境的搭建
      08-26
      03
      如何制定配置单,并购买一台个人电脑 (台式电脑)
      08-15
      更多文章>
      Theme fork from Vdoing | Copyright © 2018-2025 人间工作P | 友情链接
      • 跟随系统
      • 浅色模式
      • 深色模式
      • 阅读模式