将项目打成war供另一个项目使用找不到类
先说说背景:前两天收到任务,需要将一个web项目a打包成一个功能提供给另一个项目b使用;
问题:于是我就将项目a打成war包并依赖进了项目b,结果发现在项目b能搜索到项目a的所有class文件,但在类中不能直接使用,会提示找不到文件。
排错:
1.我检查了External Librares是否有成功依赖并且正确打包,确认没有问题;
2.我对maven里关于项目a的文件删除重新打包并更新项目b,没有发现问题;
3.查阅相关资料,有网友建议说:
在pom.xml中<type>属性后面加一个<scope>compile</scope>
于是我检查了一下依赖
发现目前已经是compile了,所以也没有问题。 最后快下班于是去问了一下领导。
结论是:javaweb项目如果希望整个打包提供给另一个项目使用,需要同时打两个包,一个jar包一个war包。
听到结果后我立马领悟了,是啊,class文件怎么能通过war使用到呢,傻了傻了。 下面是maven打jar包的配置
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <executions> <execution> <id>你项目的artifactId</id> <phase>package</phase> <goals> <goal>jar</goal> </goals> <configuration> <classifier>api</classifier> </configuration> </execution> </executions> </plugin>