用eclipse maven构建的多模块工程,代码调通没有报错,各个工程maven install也没有问题,eclipse自带的server中创建tomcat server后,将maven多模块工程的主工程发布到tomcat下,启动时总是报错找不到其他模块工程中的类。问过度娘后,整理解决方法如下:
除主工程(即要发布到tomcat下的工程,包含了web.xml等一系列配置的web工程)外的其他模块工程都工程右键->Run As->Maven install,将工程打成jar包install到本地仓库,然后关闭这些工程(close project),在主工程的pom.xml中添加子模块工程的依赖。之后,tomcat重新clean并启动项目,问题解决。
此方法中,主工程能够找到依赖的其他模块工程项目是因为pom.xml中添加了其他工程的依赖,而其他工程已经install到本地仓库并且关闭了。项目启动时,maven仓库下之前install的jar包会自动打到tomcat的主工程的lib目录下。
方法1中,虽然能找到类了,但在开发中,如果需要更改其他模块工程中的代码,则更改后还有重新maven install,关闭工程,发布到tomcat,重新启动,才能使更改生效。故而,更好的解决方案是,配置主工程的deployment assembly属性,使得其从workspace中打包代码而不从maven库中。首先,打开之前关闭的所有其他模块工程,然后依然要在主工程的pom.xml中配置对其他模块工程的依赖。接着,主工程右键->build path->deployment assembly,将依赖的其他模块工程添加进去,配置例如:
然后,tomcat重新clean,会发现原来的主工程下会有刚才加入的其他模块工程依赖,如下:
重新发布启动工程,主工程能够找到其他依赖工程的类,且其他模块工程修改后,不需要再maven install,可以直接生效。也可以用debug模式,问题解决。这种方法中,其实依赖的其他模块工程还是会被打成jar包放到tomcat下,不过不需要我们手动install,配置完成后,tomcat clean会自动打包。
另,方法2中,我曾遇到过配置了deployment assembly的其他模块工程依赖后,依然class not found的情况,这时候需要检查其他模块工程(非主工程)的deployment assembly配置,如下:
deploy path要更改为/,这样这个模块工程被打成jar包后,其中的class文件才会在jar包的根目录下,主工程才能找到。
接手了一个
maven
管理的多
模块
项目,又是javaconfig,又是spring data jpa,还算是比较新比较正规的
模块
化结构吧..然后我往其
中
的一个
模块
中
新添加了一个jpa的entity,然后运行提示
找
不到
新添加的
类
..倘若这不是jpa项目,倘若这不是javaconfig写的也许就不会出现之后的血案....
一开始我的想法是jpa扫描问题.检查jpa的entity的扫描路径配置的是正确的...
文章目录前言
找
不到
分布式项目所依赖的子项目api解决方案
找
不到
符号 && 方法不会覆盖或实现超
类
型的方法原因:解决步骤:
本文作为:
Maven
打包项目及其遇到的问题解决方案的遇到的问题和解决方案补充。
找
不到
分布式项目所依赖的子项目api
以简单的demo项目为例:
[ERROR] Failed to execute goal on project dubbo-demo-consumer:Could not resolve dependencies for project com.
1.springboot多
模块
maven
父子
工程
,B
模块
依赖了A, A打包没问题,之后打包B,报错依赖的A
中
的包
找
不到
,但是idea里导入都是好的,没有报错。
2.解决:BOOT-INF的坑
在多
module
的环境下,jar包之间相互依赖,这时候打包的时候就会有先后顺序的问题。
在项目开发后打包的时候发现通过原始建立的多
module
的项目会出现问题;
原始的spri...
因为之前用到的是,基于springboot框架所搭建的
maven
工程
,而且都是相互独立的。现研发经理要求将所有
工程
进行整合和规范化,所以抽出一个parent父
工程
,base基础
模块
(包含一些公用的实体
类
和工具
类
等),以及其他子
模块
(
Module
A、 Modu...
出现多
模块
打包
找
不到
类
和符号的问题?
maven
-compiler-plugin和spring-boot-
maven
-plugin 这俩个插件是我们微服务打包常用到的
1,每个
模块
配置了spring-boot-
maven
-plugin 打出来的包都是独立的,即使你clean install 都一样。
2,idea工具有时候打包会出问题,最好的解决办法是通过命令去编译项目打包。
3,启动的项目配置打包。比如我们有三个
maven
模块
:parent,service,server。其
中
server是一个可以
比如,你看图,全是注释,相当于这个文档里面没东西当然会错!
解决方法:
①复制一份别人的写好的setting.xml文档,记得改一下localRepository,
中
的本地仓库路径。还有servers里面的username/password或privateKey/passphrase(可选)也可以改。
②自己参照原来那个全是注释的setting文件写。里面都有举例而且什么东西是什么介绍的都
在开发
中
,无论是在微服务架构下还是单体架构下,我们经常使用到多
模块
开发,其
中
必然有抽取公共
模块
,将重复的依赖和重复的工具
类
整合的一个过程。但在我们打包时,我们经常会莫名其妙地出现can't find sympol的问题。明明在java
类
的import语句
中
正常导入了正确路径的
类
,也没有爆红,为什么会
找
不到
类
呢?这主要是由于我们在对common
模块
打包时jar包的属性以及结构导致的原因。
项目结构如图所示:
这个里六个
模块
。run启动
模块
,也是需要打成jar包启动的.依赖顺序是run->server->agreement->handler->command.由于client是我用来连接测试,暂不讨论。除了run
模块
之外其他
模块
只有一句话,引入其他
模块
,如server
中
:
dependencies {
compile project(":xia-agreement")
引入其他
模块
。由于compile具有依赖传递性,就是说如果A依赖B,B又依赖C(A-&