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

如果您的起点是已经在 IntelliJ IDEA 中打开的项目,请前往 中的主菜单。
在打开的页面上,选择 Gradle ,保留默认选项,然后点击 下一步。

在打开的页面上,让我们输入项目的名称。 在这种情况下是 gradle-publish ,其余选项保持默认,然后点击 完成。

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 { testCompile group: 'junit', name: 'junit', version: '4.12' }在
plugins部分,将'java'更改为'java-library'。plugins { id 'java-library' } group 'org.example' version '1.0-SNAPSHOT' repositories { mavenCentral() } dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' }点击
在编辑器中加载项目的更改。
请使用 src/main/java 目录为您的库添加代码。
现在在 Gradle 工具窗口中,点击项目节点,点击 任务 然后 构建:。
在打开的列表中,双击 构建: 来执行生成我们 .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 工具窗口中,点击 任务。
先在 构建: 目录中双击 clean 任务以执行它,然后执行 构建: 任务。
IntelliJ IDEA 将生成一个 .jar 文件,其中包含符合 Maven 命名约定且已更新的 artifact 名称的信息。

现在让我们进一步处理构建脚本,并将库发布到本地 Maven 仓库。
将库发布到本地 Maven 存储库
打开 build.gradle 文件并将
id 'maven-publish'添加到plugins部分。点击
将更改加载到您的项目中。
在 Gradle 工具窗口中的 出版 部分,双击 publishToMavenLocal 以运行任务。
我们可以进一步编辑 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 工具窗口中,打开 出版 部分,然后双击 publishAllPublicationsToMyRepository 运行任务。

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