Discuss / Java / pom文件依赖公司内部的私有jar包怎么办?

pom文件依赖公司内部的私有jar包怎么办?

Topic source

当pom依赖公司内部的私有jar包时,运行java -Dthin.root=. -jar awesome-app.jar会报错,报错如下:

报错具体信息:

Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.springframework.boot.loader.wrapper.ThinJarWrapper.launch(ThinJarWrapper.java:139)
        at org.springframework.boot.loader.wrapper.ThinJarWrapper.main(ThinJarWrapper.java:107)
Caused by: java.lang.RuntimeException: Failed to read artifact descriptor for com.company:company:jar:4.1.1.0
Failed to read artifact descriptor for com.company:sadk:jar:3.5.2.1
Failed to read artifact descriptor for com.company:company:jar:1.0
Failed to read artifact descriptor for com.company:scompanymanager:jar:1.0
Failed to read artifact descriptor for com.company:company:jar:1.0
Failed to read artifact descriptor for com.company:company:jar:1.0
        at org.springframework.boot.loader.thin.DependencyResolver.dependencies(DependencyResolver.java:239)
        at org.springframework.boot.loader.thin.PathResolver.extract(PathResolver.java:259)
        at org.springframework.boot.loader.thin.PathResolver.resolve(PathResolver.java:105)
        at org.springframework.boot.loader.thin.ThinJarLauncher.getClassPathArchives(ThinJarLauncher.java:369)
        at org.springframework.boot.loader.thin.ThinJarLauncher.getClassPathArchives(ThinJarLauncher.java:352)
        at org.springframework.boot.loader.thin.ThinJarLauncher.getClassPathArchivesIterator(ThinJarLauncher.java:200)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:55)
        at org.springframework.boot.loader.thin.ThinJarLauncher.launch(ThinJarLauncher.java:195)
        at org.springframework.boot.loader.thin.ThinJarLauncher.main(ThinJarLauncher.java:141)
        ... 6 more

Failed to read artifact descriptor for com.company:sadk:jar:3.5.2.1

这个报错的意思是,从maven中央仓库下载这个jar包的时候,下载失败了,因为maven中央仓库找不到这个jar包。

解决办法很简单:公司内部的这些jar你或者你的同时肯定已经安装到你们公司本地的maven仓库里面 ,去你电脑上面本地maven仓库找到这些jar包,把这些jar所在的文件夹整个复制过来

放到java -Dthin.root=. -jar awesome-app.jar这个产生的repository库里面就行了。

运行成功,问题再次解决,谢谢大家的掌声鼓励。


  • 1

Reply