作为开发人员,在软件开发过程中,主要处理两种类型的工件(artifact):源代码和构建出来的二进制包。本文我们来看看如何定义你的构建将会生成的工件,同时也会讨论如何为这些工件生成基本信息,并将其发布到本地和远程仓库中。
发布
这里主要讲如何将发布包到本地或者远程仓库中。在发布过程中一个非常重要的步骤就是为这些包生成基本信息。基本信息通常以 XML 格式的文本文件形式存储,能够包含足够的关于对应的包的信息。
下面给出了一些常用的基本信息类型:
- 包相关的通用信息,如名字、描述、开发人员以及源代码或文档的链接。
- 可用的包的版本。
- 包的传递性依赖。
- 使用者必须拥有的许可权。
Gradle 可以帮助生成这些基本信息,并上传到不同类型的仓库中(一般指 Maven 仓库或者 Ivy 仓库),Gradle 本身并没有自己的仓库。
发布到 Maven 仓库中
项目生成的包路径都在 build/libs 目录下,如 xxx.jar、xxx-groovydoc.jar、xxx-sources.jar 等。
发布 Maven 仓库主要指三个类型:
- 位于 <USER_HOME>/.m2/repository 目录下的本地缓存。
- 本地文件系统中任意目录下的仓库。
- 通过 HTTP(S) 可访问的远程二进制仓库。
企业级项目不应该依赖于 Maven Central 作为主要的依赖管理源。为了能够产生稳定的和可重复使用的构建,应该为你的项目创建一个内部仓库,主要有 Sonatype Nexus 和 JFrog Artifactory。
如果想要让你的包对其他团队或者组织中的相关人员可用,远程仓库能够提供帮助。
关于发布远程 Maven 仓库查看 gradle 如何将 jar 包等文件上传到 nexus maven 仓库。