精华内容
下载资源
问答
  • 以下描述为对问题的 抽象描述项目A 打包生成JarA,项目A依赖了Netty包和一个自己本地的JarB包打包之后JarA的 文件结构 如下:(1)JarA包的根路径下存在 JarB 和NettyJar(2)在JarA的Manifest文件中指定了 mainClass和...

    以下描述为对问题的 抽象描述

    项目A 打包生成JarA,项目A依赖了Netty包和一个自己本地的JarB包

    打包之后JarA的 文件结构 如下:

    (1)JarA包的根路径下存在 JarB 和NettyJar

    (2)在JarA的Manifest文件中指定了 mainClass和

    classpath:jarB.jar nett-all.jar

    这样配置之后 运行jarA ,按理来说 jarA都能够根据classpath 找到JarB 和NettyJar ,然后使用相关依赖包中的类。

    JarA的mainClass 的main方法实现非常简单public static void main(String[] args) {

    System.out.println(ChannelHandler.class.getName());//测试是否能够找到Netty Jar

    System.out.println(Person.class.getName());// 测试能否找到本地Jar

    }

    执行 java -jar jarA.jar 会输出ChannelHandler的全限定类名,但是报错提示找不到Person类。

    问题: Person类定义在jarB 包中,查看JarA 包中确实存在jarb,打开jarb 里面确实也存在Person类, 为什么程序会提示找不打Person类?

    Jar包文件,下载后在本地直接运行 java -jar 就可以 看到错误提示

    链接: https://pan.baidu.com/s/1YNxM... 提取码: dn4a

    展开全文
  • 例子:项目root,有module common,front,mall等其中front 和mall都依赖于common,将来需要上线部署的也是front和mall项目,所以两个项目是要进行打包,也就是这个打包操作,让我浪费了好多时间,这里都是我亲身经历的...

    引用原文: 原文地址   

     

    最近公司使用springboot开发项目,使用的构建工具是maven,项目分了很多模块,并且模块之间还存在一定的依赖,比如说一个项目common是提供各项目通用的工具类,公共的类等

    例子:项目root,有module common,front,mall等其中front 和mall都依赖于common,将来需要上线部署的也是front和mall项目,所以两个项目是要进行打包,也就是这个打包操作,让我浪费了好多时间,这里都是我亲身经历的血泪史。。

    当使用Maven对front项目直接进行package时,提示依赖于common的jar包找不到。因为直接对front打包,common并没有被打包,依赖关系无法保持。这时你要做的就是,首先对项目common进行install,如图

    注意!注意!这里有一个巨坑,我已经义无反顾的跳进去一次了,大家一定不要再往里面跳了:Common打包出来的应该是不可执行的jar包,所以不要在Common的pom中定义spring-boot-maven-plugin插件,因为这个SpringBoot插件会在Maven的package后进行二次打包,目的为了生成可执行jar包,如果C中定义了这个插件,会报错提示没有找到main函数。这时你就可以去打包front项目了,当然打包的时候可能还是不行,这里还有一个小坑,如果还是不能进行打包的话,那么就install一下root项目,也就是总目录下的pom文件对应的install操作,这样再打包front项目基本上就没有问题了,老铁,都是经验呀,希望对你们有帮助

     

    如果还是不能进行打包的话,那么就install一下root项目

    展开全文
  • 没有main方法中,使用maven打包正常,build success,但是在加入系统中发现依赖的公共组件没有打包进来,一直找不到原因,可能是查找的词条不对,后面查找的词条是将所有的包打入一个jar中,才算解决问题,对于普通...

    在进行聚合项目打包的时候出现个诡异的问题,之前使用基于springboot的聚合项目打包时,对依赖的公共组件不需要做任何处理,直接打包对应主组件即可完成打包,程序正常运行,但是在进行普通聚合项目打包,非springboot项目,没有main方法中,使用maven打包正常,build success,但是在加入系统中发现依赖的公共组件没有打包进来,一直找不到原因,可能是查找的词条不对,后面查找的词条是将所有的包打入一个jar中,才算解决问题,对于普通的jar打包聚合项目时,可使用以下方式:

           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-shade-plugin</artifactId>
                 <configuration>
                   <createDependencyReducedPom>true</createDependencyReducedPom>
                  </configuration>
                    <executions>
                      <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>shade</goal>
                            </goals>
                      </execution>
                    </executions>
            </plugin>

     对于springboot项目可使用以下方式:

      <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <dependencies>
                        <dependency>
                            <groupId>org.springframework</groupId>
                            <artifactId>springloaded</artifactId>
                            <version>1.2.5.RELEASE</version>
                        </dependency>
                    </dependencies>
                </plugin>

    纯记录,供参考。

    展开全文
  • 我们的两三个开发人员对Java都是很熟,因此在使用中遇到了一些问题,表现在:在本地中引入第三方jar包后,在Idea中进行相应设置后,可以调试运行了,但是用Docker打包上传到服务器后,运行会提示找不到某些类的...

    我们项目中使用到第三方的库文件,这些jar库文件并没有放到Maven中央库上,导致我们需要在项目中自己配置使用。我们的两三个开发人员对Java都是很熟,因此在使用中遇到了一些问题,表现在:在本地中引入第三方jar包后,在Idea中进行相应设置后,可以调试运行了,但是用Docker打包上传到服务器后,运行时会提示找不到某些类的定义。

    经查看这些找不到的类就是来自第三方库,那么问题有可能是第三方jar包的路径问题,或者是根本就没有打包进jar文件里面。我们可以去Docker容器内部查看jar文件,执行命令:jar tf xxx.jar|grep lib,其中xxx.jar是打包后生成的文件名称。这个命令打印出jar文件中lib目录下的所有文件,从这里我们可以看到,确实没有包含第三方的jar文件。

    在网上找了一阵子,各种说法五花八门,然而都不能解决问题,比如这里有一篇:3-ways-to-add-local-jar-to-maven-project,看着貌似能解决问题,但使用后还是无法解决。比如将第三方jar包安装到本地Maven,这种方式是可以解决本地编译的问题,但我们还得去编译服务器上再安装一遍,而且要指定groupId,artifactId等东西,感觉蛮麻烦。我们只想在编译打包时,把我们的lib文件夹的文件都拷贝到jar文件的lib目录下。有什么办法呀?

    Maven中有各种plugin,也就是插件,有人推荐用assembly插件,比如这样写:

    maven-assembly-plugin

    jar-with-dependencies

    我们以为这样就能把所有依赖包放进最终的jar文件中了,可惜试了之后还是不行,其它类似方法也试了都不行。后面想想,是不是要把lib文件夹放到resource目录下。试了之后,发现这回倒是拷贝进jar文件了,但是放置的位置是BOOT-INF/classes/lib里面,而其他的库文件则放到BOOT-INF/lib里面,这样运行时会不会找不到那些第三方jar文件呢?我们没有验证,然后在这里找到一篇文章,解决了拷贝lib目录文件到BOOT-INF/lib的问题,配置如下:

    src/lib

    BOOT-INF/lib/

    **/*.jar

    src/main/resources

    BOOT-INF/classes/

    这样之后,所有的依赖包都放到BOOT-INF/lib目录下了,程序也可以正常运行了。

    以为到这里能加鸡腿了,结果来个更大的坑。第三方库里面有读取文件的接口,我们在使用接口时,传入了一个配置相关的文件的路径,我们是在resources目录下新建了个目录来存放这个配置文件的。运行时异常:

    java.io.FileNotFoundException:

    class path resource [aaa/xxx.conf] cannot be resolved to absolute file path because it does not reside in the file system.

    这个问题是因为程序去读取文件时,是去文件系统里面找文件,而不是从jar里面找,人家是建议使用getInputStream而不是getFile。可是读取文件的功能是第三方库实现的,我们没法改动读取文件的方式。那怎么办?老老实实在Dockerfile文件加个拷贝操作呗,把配置文件放到文件系统相应目录下即可。

    总结一下,这个问题的原因还在于,我们对官方Maven文档不熟,没有研究过各种配置,对Jar文件的组织结构和运行原理不太清楚,因为我们几个Java方面的经验都不够多,踩过的坑还太少,同时也不得不感叹,Java开发里面的各种配置,也真是眼花缭乱啊,即便我们也使用了Spring Boot这种简化了配置的开发框架。

    文章来源:技术人成长

    欢迎关注公众号:

    展开全文
  • Springboot中如何引入本地jar包,并通过maven把项目成功打包成jar包部署, 1.最近公司使用springboot开发项目,...当使用Maven对front项目直接进行package,提示依赖于common的jar包找不到。因为直接对front打包...
  • IDEA Maven打包时报找不到符号错误

    千次阅读 2017-10-10 23:07:24
    一、问题背景在使用idea...此时,在idea中使用maven打包工程,这些不是通过maven管理的jar包中的类,在编译会报找不到符号错误。二、解决方案方案一:在项目中创建一个目录lib,然后将jar复制到该文件夹下,最后在
  • 打包时经常会遇到找不到依赖包的问题; 一、依赖远程jar包 1.到本地仓库检查下依赖包是否存在,如果存在;eclipse则可以右击项目->maven->update project(选择force update of snapshots/releases)重新加载...
  • Maven 打包时加入本地依赖

    千次阅读 2017-10-23 23:09:35
    问题描述Maven 工程部署到 Tomcat 后,启动报错,找不到相应的类文件:java.lang.NoClassDefFoundError: com/vmware/vim25/InvalidPropertyFaultMsg问题原因查看报错信息,发现找不到的类都是本地依赖包中的类;...
  • Maven打包找不到class文件的问题

    万次阅读 2018-06-09 15:42:05
    某个依赖的jar包在仓库里没有对应的pom.xml文件。将maven-compiler-plugin升级,可以看到在编译时maven报错。
  • Maven打包时,报错从远程仓库下载不到依赖文件。报错信息如下: Could not transfer artifact org.apache.servicecomb:java-chassis-dependencies:pom:1.0.0.B003.47RC from/to nexus-aliyun ...
  • 原因: maven打包时,所需要的依赖没有打包进来 解决:pom文件如下修改: 更改maven打包的项目名 整体配置代码 <finalName>mail_demo</finalName> <plugins> <plugin> &
  • maven打包时不从本地仓库jar包 在工程需要依赖第三方资源包,同时该jar包在远程或者中央仓库中,我直接从同事本地仓库拷贝jar包过来,打包时发现maven从本地仓库,却其他仓库,导致报错,记录一下解决...
  • 关于IDEA使用Maven工具打包带有本地依赖包的项目 在部署 仍然找不到本地依赖包中某个类,发生ClassNotFoundException的异常参考文章1 运行环境介绍(非部署环境)1.1 开发环境1.2 Maven的pom文件关于Maven工具的...
  • 场景:因为之前用到的是,基于springboot框架所搭建的maven工程,而且都是相互独立的。现研发经理要求将所有工程进行整合和规范化,所以抽出一个parent父工程,base基础模块...问题:在对Module A进行打包时,出现问题:Mo...
  • 我们的两三个开发人员对Java都是很熟,因此在使用中遇到了一些问题,表现在:在本地中引入第三方jar包后,在Idea中进行相应设置后,可以调试运行了,但是用Docker打包上传到服务器后,运行会提示找不到某些类的...
  • idea中使用maven打包项目出现符号找不到 写毕业设计的时候所有代码都写完后,打包项目出现 request符号找不到 被这个问题困扰了很多天 而且只有新编写的类才会出现这个问题,之前的老版本打包都没什么问题 ...
  • 当执行打包命令,报错找不到xxx类,找不到xxx符号 install依赖的模块 而这个类是其他模块的。我们只需要将其他模块install一下,重新打包就可以了。 重新打包 打包成功
  • 我在用 IDEA 导入并使用了一个外部依赖,但是我在用 mave 的 package 命令打包时,发现那个外部依赖没有被打包进去,因为我启动了打包后的 jar 文件之后,程序报了【找不到此类】的错误。 要解决这个问题,只需要在 ...
  • 前言 先交代一下我这边的情况,如若跟你想要的结果不符,勿喷。 聚合项目 + 使用过 mvn ...这次的问题主要在于之前在打 war 包,使用的 mvn install 指令,其依赖的 BCD 都被打进本地 Maven 仓库,而 BCD 改...
  • 依赖项目没有打包到本地仓库 或者没有上传远程仓库 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile (default-compile) on project ibps-platform-icms: ...
  • 在开发中,偶尔会遇到一个问题:某些比较冷门的包,maven服务器...但是这又会引发一个问题,打包的时候因为找不到这些本地导入的包而报错。。。 1. 命令行模式 cd进入项目根目录(pom.xml所在路径) 2. 执行 mvn de...
  • 当我们把一个项目拆分成多个项目,jenkins会找不到依赖的本地jar。 我们的项目结构是,common,core,jms jms依赖core和common。这样的结构在jenkins构建会有问题,not found xxx.jar. 解决方法 安装maven 给jenk...
  • [ERROR] D:\bootstrapWorksource\test\src\main\java\com\yzh\maven\interceptor\HandlerInterceptor1.java:[45,24] 错误: 找不到符号 [ERROR] 符号: 类 HttpServletRequest 解决办法:缺少该类的pom的jar依赖,在...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 200
精华内容 80
关键字:

maven打包时找不到依赖