关于直接仅使用maven-publish时打包上传至gitea后,依赖无法传递问题
直接使用之前的example打包上传后,在服务端引入jar后,发现无法继承、实现,其原因时无法识别其中的依赖。对比了其他开源的jar,发现在MANIFEST.MF文件中没有依赖版本。
找了((20241224235320-oe9gie5 "相关文档")),发现需要引入java-library
插件,然后使用api引入依赖,api
和implementation
的区别就是api会对外公开依赖,implementation
则不会公开。因此第三方服务引入该jar后无法识别依赖。因此主要做以下两点修改:
-
引入java-library插件
plugins { id 'java' id 'java-library' id 'com.google.protobuf' version '0.9.4' id 'application' id 'maven-publish' }
-
将implementation改为api
dependencies { api 'io.grpc:grpc-netty:1.69.0' //核心grpc的依赖 api 'io.grpc:grpc-protobuf:1.69.0'//核心grpc的依赖 api 'io.grpc:grpc-stub:1.69.0'//核心grpc的依赖 api 'javax.annotation:javax.annotation-api:1.2' api 'com.google.protobuf:protobuf-java:4.28.2' //核心protobuf的依赖的插件 api 'com.google.protobuf:protobuf-java-util:4.28.2' //核心protobuf的依赖的插件 testImplementation platform('org.junit:junit-bom:5.10.0') testImplementation 'org.junit.jupiter:junit-jupiter' protobuf files("proto/") }