如何用Gradle构建含依赖的JAR库?Nexus发布相关疑问
问题解答
1. 第三种发布方案:普通JAR + 独立依赖描述文件
你不需要把pom.xml或build.gradle塞进JAR包,正确的方案是发布仅含编译后.class文件的普通JAR,同时单独上传对应的依赖描述文件:
- 用Maven构建时,会自动生成
pom.xml,发布时和JAR一起上传到Nexus,这个pom.xml里就声明了项目的依赖信息 - 用Gradle构建时,通过
maven-publish插件可以生成符合Maven规范的pom.xml,或者Gradle专属的.module元数据文件,这些文件和JAR分开上传,用来告诉依赖你的项目的其他工程需要拉取哪些库
Maven Central里的普通JAR偶尔会看到包含pom.xml,这属于打包失误,不是标准做法——正常情况下依赖信息是通过仓库中单独存放的pom.xml来传递的,和JAR包本身是分离的。
2. Gradle构建的带依赖库可以发布到Maven仓库
当然可以。Gradle的maven-publish插件专门用来处理这类需求:
- 配置插件后,它会根据你
build.gradle里的依赖声明,自动生成对应的pom.xml文件 - 执行发布任务时,会把普通JAR、
pom.xml以及其他必要的元数据文件一起上传到Nexus(或其他Maven兼容仓库) - 其他项目不管用Maven还是Gradle,都能像引入Maven构建的库一样,直接通过坐标引入你的项目,并且自动拉取声明的依赖
内容的提问来源于stack exchange,提问作者greeger 228
相关产品推荐
相关产品推荐

