前提
項目是由N個project組成的多模塊Maven項目:
- web模塊,打包成war
- 其他子模塊,打包成jar,由maven根據pom.xml的dependencies自動打包放入web模塊的WEB-INF/lib
問題
其他子模塊也用到了spring的注解,例如@Service、@Controller等等
當使用Weblogic啟動項目后,初始化Spring IOC容器失敗,報各種NoSuchBeanException異常
解決方法
在對應的 子模塊 的 pom.xml 文件中添加plugin,然后重新打包
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>
總結
該方法類似於使用eclipse,在打包 非Maven項目 時選擇Add directory entries選項