Maven多工程依赖在Eclipse中发布到Server被依赖工程没有生成jar的问题
2015-09-10 19:40
447 查看
问题描述:
Eclipse上的maven项目,A工程依赖B工程(dependency),A项目作为web工程发布到Server(tomcat类型Server)上,结果B项目没有生成jar,打包到A项目的lib中。
解决思路:
1. 怀疑依赖语法写的有问题。尝试直接maven打包,B工程能够正确生成jar,打包到A工程的lib下,并且不依赖Eclipse,单独发布A.war是没问题的。
2. 再仔细对比之前一个项目的多工程依赖,发现本项目的B工程在Eclipse的Server中,显示的小瓶子右下角有个小球,而之前项目的B工程没有小球。该小球(应该是地球的模型)表示该工程为 Dynamic Web Module,这种工程可以作为一个web工程单独发布。
3. 想办法将B工程恢复为普通Java工程。右键B工程,选properties,选“Project Facets”,将“Dynamic Web Module”复选框取消勾选,并勾选“Java”(默认是勾选了的)和“Utility Module”(经测试,该项可以不勾选)。然后clean一把工程,再次检查Eclipse的Server,A工程内的lib下已经正确包含了B.jar,问题解决。
这里的A工程是对外工程,一般是web类型的,B工程是服务工程,是实现内部业务功能的,设计的时候是普通java工程。正常顺序创建工程的时候,只要按类型创建不会碰到这个问题,有时候使用一些工具会自动生成项目骨架工程结构,就有可能都创建的是web工程。
Eclipse上的maven项目,A工程依赖B工程(dependency),A项目作为web工程发布到Server(tomcat类型Server)上,结果B项目没有生成jar,打包到A项目的lib中。
解决思路:
1. 怀疑依赖语法写的有问题。尝试直接maven打包,B工程能够正确生成jar,打包到A工程的lib下,并且不依赖Eclipse,单独发布A.war是没问题的。
2. 再仔细对比之前一个项目的多工程依赖,发现本项目的B工程在Eclipse的Server中,显示的小瓶子右下角有个小球,而之前项目的B工程没有小球。该小球(应该是地球的模型)表示该工程为 Dynamic Web Module,这种工程可以作为一个web工程单独发布。
3. 想办法将B工程恢复为普通Java工程。右键B工程,选properties,选“Project Facets”,将“Dynamic Web Module”复选框取消勾选,并勾选“Java”(默认是勾选了的)和“Utility Module”(经测试,该项可以不勾选)。然后clean一把工程,再次检查Eclipse的Server,A工程内的lib下已经正确包含了B.jar,问题解决。
这里的A工程是对外工程,一般是web类型的,B工程是服务工程,是实现内部业务功能的,设计的时候是普通java工程。正常顺序创建工程的时候,只要按类型创建不会碰到这个问题,有时候使用一些工具会自动生成项目骨架工程结构,就有可能都创建的是web工程。
相关文章推荐
- Java SE学习之printf 日期转换符
- Java 解析java程序的过程图
- JAVA 该数出现几次
- JVM--JAVA内存区域与内存溢出异常(未完)
- 设计模式(Design Patterns)
- java中关于重载和重写
- 掌握内部类
- Java序列化与反序列化
- java web学习心得与总结(二)——jsp内置对象
- java Scanner中的 next() 方法和 nextLine() 方法的区别
- spring mvc 406错误
- Java读写文件的几种方式
- 利用JAVA实现中缀表达式向后缀表达式的转换,并求出表达式的值
- java中this的使用
- Java内部类详解
- springMVC3得知(五岁以下儿童)--MultiActionController
- java swing 自定义鼠标光标及隐藏光标
- 运行MyEclipse的破解补丁时一闪而过
- Java中String类的方法及说明
- Java8 lambda表达式