将 Java 库发布到 Maven 仓库
本教程的目的是演示如何在 Gradle 项目中创建 Java 库,并将其发布到本地 Maven 仓库,然后再发布到远程仓库,使用 IntelliJ IDEA。
让我们从创建一个 Gradle 项目开始。
创建新的 Gradle 项目
在欢迎界面中,选择 新建项目。

如果您的起点是已经在 IntelliJ IDEA 中打开的项目,请转到主菜单中的 。
在打开的页面左侧选项列表中,选择 Java。 为我们的项目输入名称。 在我们的例子中是 gradle-publish ,选择 Gradle ,其余选项保持默认,然后点击 创建。

IntelliJ IDEA 创建一个 Gradle 项目并启用 Gradle 工具窗口。
现在让我们稍微调整一下 build.gradle.kts 文件,因为我们需要添加对 Java 库的支持并构建我们的项目。
编辑 build.gradle.kts
在 项目 工具窗口中,双击 build.gradle.kts 文件以在编辑器中打开它。
此时 build.gradle.kts 包含以下代码:
plugins { id("java") } group = "org.example" version = "1.0-SNAPSHOT" repositories { mavenCentral() } dependencies { testImplementation(platform("org.junit:junit-bom:6.0.0")) testImplementation("org.junit.jupiter:junit-jupiter") testRuntimeOnly("org.junit.platform:junit-platform-launcher") } tasks.test { useJUnitPlatform() }在
plugins部分,将"java"更改为"java-library"。plugins { id("java-library") } group = "org.example" version = "1.0-SNAPSHOT" repositories { mavenCentral() } dependencies { testImplementation(platform("org.junit:junit-bom:6.0.0")) testImplementation("org.junit.jupiter:junit-jupiter") testRuntimeOnly("org.junit.platform:junit-platform-launcher") } tasks.test { useJUnitPlatform() }在编辑器中点击
(同步 Gradle 更改 ),以同步更改到您的项目。
请使用 src/main/java 目录为您的库添加代码。
现在在 Gradle 工具窗口中,点击项目节点,点击 任务, 然后 构建。
在打开的列表中,双击 构建 来执行生成我们 .jar 文件的构建任务。

因此,我们在 项目 工具窗口中的 build/libs 目录下生成了一个 .jar 文件。

现在让我们遵循 Maven 约定,并为我们的库指定 Maven 坐标。 由于 IntelliJ IDEA 在创建项目时已经添加了 GroupId 和 版本 ,我们唯一需要更改的是 ArtifactId。
更改 ArtifactId 并生成 JAR 文件
在 项目 工具窗口中,双击 settings.gradle.kts 文件以在编辑器中打开它。 将
rootProject.name从gradle-publish更改为my-artifact-id。rootProject.name = "my-artifact-id"点击
同步 Gradle 更改 以同步更改。
在 Gradle 工具窗口中,点击 任务。
先在 构建 目录中双击 清理 任务以执行它,然后执行 构建 任务。
IntelliJ IDEA 将生成一个 .jar 文件,其中包含符合 Maven 命名约定且已更新的 artifact 名称的信息。

现在让我们进一步操作我们的构建脚本,并将库发布到本地 Maven 仓库。
将库发布到本地 Maven 存储库
打开 build.gradle.kts 文件并将
id("maven-publish")添加到plugins部分。点击
(同步 Gradle 更改 ),以同步更改到您的项目。
在 Gradle 工具窗口中的 publishing 部分,双击 publishToMavenLocal 运行任务。
IntelliJ IDEA 会创建一个 JAR 文件,并根据您的操作系统把它添加到以下目录:
/Users/<user_name>/.m2/[Artifact GroupID]/[Artifact Name]/[Artifact Version]
/home/<user_name>/.m2/[Artifact GroupID]/[Artifact Name]/[Artifact Version]
C:\Users\<User_Name>\.m2\[Artifact GroupID]\[Artifact Name]\[Artifact Version]
我们可以进一步编辑 build.gradle 文件,以将我们的库发布到远程存储库。
发布到远程仓库
在 build.gradle.kts 文件中添加以下部分:
publishing { publications { create<MavenPublication>("myLib") { from(components["java"]) } } repositories { maven { name = "MyRepo" // optional target repository name url = uri("http://my.org.server/repo/url") credentials { username = "alice" password = "my-password" } } } }点击
(同步 Gradle 更改 ),将更改加载到您的项目。
在 Gradle 工具窗口中,打开 publishing 部分,然后双击 publishAllPublicationsToMyRepository 运行任务。

有关自定义 POM 文件、使用不同的快照或发布仓库的更多信息,请参阅 Gradle 文档。