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

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

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

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

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

现在让我们继续处理构建脚本,并将该库发布到本地 Maven 仓库中。
将库发布到本地 Maven 存储库
打开 build.gradle 文件并将
id 'maven-publish'添加到plugins部分。点击
(同步 Gradle 更改 )以将更改同步到您的项目。
在 Gradle 工具窗口中,在 出版 部分,双击 publishToMavenLocal 以运行该任务。

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

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