1: 上传jar包了, 但是 pom.xml 是默认生成的, 导致 有的依赖下载不下来
说明:
比较关键的就是 -DpomFile=pom.xml
,如果你不指定的话,那么 maven 就会自动生成一个 pom ,但基本是一个空的 pom,依赖关系都没有的 —— 这将导致,如果别人引用了你的 jar 包,并且需要使用依赖关系里的代码,但却找不到,就会抛出 NoClassDefFoundError 错误,因为编译时没有问题,但运行时却找不到 class 文件。
deploy:deploy-file 插件有很多参数,想了解更多内容,可以参照官方文档:https://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html#packaging。
2:jar包中带有pom.xml的jar包必须将 jar包中的pom.xml 拿出来,跟jar包在同一级别目录,使用以下命令上传:
mvn deploy:deploy-file
-DgroupId=com.alibaba.csp //groupId
-DartifactId=sentinel-annotation-aspectj // artifactId
-Dversion=1.2-SNAPSHOT //version
-Dfile=g:\sentinel-annotation-aspectj-1.4.0.jar //jar包路径及jar包文件名
-Dpackageing=jar //上传文件的格式
-DpomFile=pom.xml //重点在这, 必须单独上传jar中的pom.xml
-DrepositoryId=user-thirdparty //连接maven私服的登录名及密码, 在maven > setting.xml 中配置好的
-Durl=http://IP:8081/nexus/content/repositories/snapshots/ //上传的私服路径及目录
3: 使用第三方jar包,不包含pom.xml 则可以使用以下命令:
mvn deploy:deploy-file
-DgroupId=com.alibaba.csp //groupId
-DartifactId=sentinel-annotation-aspectj // artifactId
-Dversion=1.4.0 //version
-Dfile=g:\sentinel-annotation-aspectj-1.4.0.jar //jar包路径及jar包文件名
-DrepositoryId=user-thirdparty //连接maven私服的登录名及密码, 在maven > setting.xml 中配置好的
-Durl=http://IP:8081/nexus/content/repositories/thirdparty/ //上传的私服路径及目录