• 多模块Maven项目中,spring无法扫描到子模块jar包中的bean注解


    前提

    项目是由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选项

  • 相关阅读:
    springboot maven打包插件
    maven打包指定main入口插件
    团队开发环境一致性性要求
    springboot 在idea中实现热部署
    IDEA 2018.1可用License服务(持续更新)
    IDEA打jar包
    3月18号
    3月17号
    3月16号
    3月13号
  • 原文地址:https://www.cnblogs.com/zhuang229/p/12371195.html
Copyright © 2020-2023  润新知