Tag

Gradle

gradle导入authlib依赖

Minecraft
纯文本
repositories {
    maven("https://libraries.minecraft.net")
}

dependencies {
    implementation("com.mojang:authlib:3.11.49")
}

gradle打包依赖进jar

开发工具
kotlin
tasks.create<Jar>("fatJar") {
    archiveBaseName.set(project.name + "-all")
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    manifest {
        attributes["Main-Class"] = "top.e404.bot.loader.Main"
    }
    val exclude = listOf(
        "LICENSE.txt",
        "META-INF/MANIFSET.MF",
        "META-INF/maven/**",
        "META-INF/*.RSA",
        "META-INF/*.SF"
    )
    val dependencies = configurations.runtimeClasspath.get().map(::zipTree)
    from(dependencies).exclude {
        it.path in exclude
    }
    with(tasks.jar.get())
}

或者使用 shadow 插件

kotlin
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
  kotlin("jvm") version "1.7.21"
  id("com.github.johnrengelman.shadow") version "7.1.2"
}

group = "top.e404"
version = "1.0.0"

repositories {}

dependencies {}

tasks.shadowJar {
  archiveFileName.set("${project.name}-${project.version}-all.jar")
}

如何查找Maven/Gradle依赖

开发工具

阿里云(推荐)

如何使用阿里云镜像

搜索依赖 https://developer.aliyun.com/mvn/search

搜索依赖有两种模式,一种是使用关键词的搜索,另一种是知道依赖的group和artifact的情况下精准搜索

关键词

精准搜索

精准搜索时可以只填一个参数模糊匹配

这里点击蓝色的依赖名字,可以打开如下界面

这里也可以直接生成maven的依赖(虽然没有生成gradle格式的依赖,但是在IDEA中直接复制到build.gradle中是可以自动转换格式的)

中央仓库(不翻墙需要过人机验证)

搜索依赖 https://mvnrepository.com/

首先搜索,找到自己要的依赖并打开

找到自己需要的版本打开

可以看到此处显示了依赖的详细信息,下方还会自动生成各种格式的依赖,可以直接复制到项目里

Gradle设置阿里云镜像源

开发工具

Gradle设置

首先找到Gradle的用户目录,默认情况下在 C:\Users\你的用户名\.gradle

如果设置了 GRADLE_HOME 环境变量的话就是你设置的目录

找到家目录中的 init.gradle 文件,如果没有就新建一个

在其中添加如下代码

纯文本
buildscript {
    repositories {
        maven {
            url 'https://maven.aliyun.com/repository/public'
        }
        maven {
            url 'https://maven.aliyun.com/repositories/jcenter'
        }
    }
}

allprojects {
    repositories {
        maven {
            url 'https://maven.aliyun.com/repository/public'
        }
        maven {
            url 'https://maven.aliyun.com/repositories/jcenter'
        }
    }
}

仓库名

简介

实际地址

使用地址

jcenter

JFrog公司提供的仓库

http://jcenter.bintray.com

https://maven.aliyun.com/repository/jcenter
https://maven.aliyun.com/nexus/content/repositories/jcenter

mavenLocal

本台电脑上的仓库

{USER_HOME}/.m2/repository

C:/Users/{USER_NAME}/.m2/repository (Windows)
/home/{USER_NAME}/.m2/repository (Linux)

mavenCentral

Sonatype公司提供的中央库

http://central.maven.org/maven2

https://maven.aliyun.com/repository/central
https://maven.aliyun.com/nexus/content/repositories/central

google

Google公司提供的仓库

https://maven.google.com

https://maven.aliyun.com/repository/google
https://maven.aliyun.com/nexus/content/repositories/google
https://dl.google.com/dl/android/maven2

jitpack

JitPack提供的仓库

https://jitpack.io

https://jitpack.io

public

jcenter和mavenCentral的聚合仓库

https://maven.aliyun.com/repository/public
https://maven.aliyun.com/nexus/content/groups/public

gradle-plugin

Gradle插件仓库

https://plugins.gradle.org/m2

https://maven.aliyun.com/repository/gradle-plugin
https://maven.aliyun.com/nexus/content/repositories/gradle-plugin

Gradle高版本编译时Lombok不起作用

排障复盘

今天使用lombok时出现问题,maven项目能正常使用,拿到gradle里面就出问题,在网上找了一圈,最终解决

解决办法:引入lombok时需要用如下格式

纯文本
dependencies {
    annotationProcessor 'org.projectlombok:lombok:1.18.20'
    compileOnly 'org.projectlombok:lombok:1.18.20'
}

错误的格式(少了 annotationProcessor 'org.projectlombok:lombok:1.18.20'

纯文本
dependencies {
    compileOnly 'org.projectlombok:lombok:1.18.20'
}

其他没有生效的方法

打开此选项