`
sz_jack
  • 浏览: 3935 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

springboot项目编译后无法扫描加载到子jar包中的注解解决方法

 
阅读更多

转载:http://blog.sina.com.cn/s/blog_cfee55a70102yvyd.html

 

A项目依赖B项目,B项目中存在@service等注解,在本地eclipse中运行A项目时可以正常扫描B项目的注解创建对象。

但经过打包后,B项目和A项目的目录结构变成

+BOOT-INF

    +classes

    +lib

+META-INF

+org.springframework.boot.loader

 

B项目本身又作为A项目BOOT-INF/lib下的jar包,A项目使用java -jar从入口启动类启动后无法扫描到B项目的注解,

且B项目中的lib也与A项目中的lib下jar包存在重复。

 

解决方法,在B项目的pom.xml文件中添加<classifier>exec</classifier>

 

 

这样B项目编译后target目录下会产生两个文件

B.jar  B-exec.jar

其中B-exec.jar和之前的结构一样

B.jar的目录结构是非springboot编译项目,只有B项目自身的文件

+META-INF

+com.B项目包名

 配置文件....

 

这样再对A项目打包后,A项目BOOT-INF/lib目录下只会加入B.jar,实测启动可以正常扫描到B项目中的注解

 

如果需要单独执行B项目,只需执行B-exec.jar即可

分享到:
评论

相关推荐

    springboot编译jar包后无法扫描子jar包中的注解解决方法

    通过上述方法,我们可以有效地解决Spring Boot项目编译后无法扫描子JAR包中注解的问题。这种方法不仅能够简化主项目的依赖关系,还能避免重复依赖带来的冲突问题。对于那些希望优化多模块Spring Boot项目构建流程的...

    Spring自动扫描无法扫描jar包中bean的解决方法

    然而,当Bean定义在独立的jar包中,有时Spring可能无法正确扫描并加载这些Bean。这种情况通常发生在将公共模块打包成jar,并在其他项目中作为依赖引入时。本文将深入探讨这个问题,并提供解决方案。 首先,我们需要...

    Springboot 打Jar包,Maven完美解决本地Jar包自动打入Springboot Jar包中

    ### Springboot 打Jar包,Maven完美解决本地Jar包自动打入Springboot Jar包中 #### 背景介绍 随着微服务架构的流行,Spring Boot 成为了开发微服务应用时首选的技术栈之一。它简化了传统的Java Web应用程序的开发...

    springboot+java类热加载

    `ClassUtil.java`可能包含了一些辅助方法,用于在运行时编译修改后的Java源码,然后由类加载器加载到JVM中。Java的`javac`工具或第三方库如Apache Ant或Maven的Compiler插件可以用于此目的。 **自动引用依赖**:在...

    如何加载jar包中的spring配置文件

    在Spring MVC项目中,加载jar包中的Spring配置文件是一个常见的需求,特别是在进行SSM(Spring、Spring MVC、MyBatis)整合时。SSM框架的整合通常涉及到多个配置文件的组织和管理,其中一部分配置可能会被打包到独立...

    加载jar包中的spring配置文件

    综上所述,"加载jar包中的spring配置文件"是一个关键的Java开发实践,它涉及到Spring框架的配置管理、类路径的概念,以及如何在多模块项目中有效地组织和使用配置。正确理解和使用这些技术,能帮助开发者构建可扩展...

    SpringBoot项目Jar包加密防止反编译详细讲解(值得珍藏)

    字节码加密是另一种增强安全性的手段,它涉及到对编译后的.class文件进行加密,使得即使字节码被提取出来,也无法直接反编译为源代码。工具如JBCO可以在运行时动态解密加密的字节码,但这种操作可能会对程序性能...

    Java实现从jar包中读取指定文件的方法

    此外,如果你需要频繁地从JAR中读取资源,可以考虑使用`Class.getResourceAsStream()`或`ClassLoader.getResourceAsStream()`方法,它们允许你通过类路径(相对于类或类加载器)访问资源,而无需显式打开`JarFile`。...

    解决SpringBoot整合Mybatis扫描不到Mapper的问题

    解决SpringBoot整合Mybatis扫描不到Mapper的问题 SpringBoot是一款流行的Java框架,Mybatis是Java Persistence层的优秀解决方案。当我们将SpringBoot和Mybatis整合时,可能会出现Mapper扫描不到的问题,这篇文章将...

    解决SpringBoot jar包中的文件读取问题实现

    在开发SpringBoot微服务时,开发人员小明遇到了一个问题,即在本地开发环境中能够正常读取资源文件,如word文档或模板,但当项目被打包成jar并部署到服务器后,程序无法找到这些文件,导致运行时异常。这个问题在...

    动态加载jar包

    动态加载jar包是一种在程序运行时按需引入外部库或者组件的技术,这使得应用程序更加灵活,可以适应不同的环境和需求。这种技术广泛应用于插件系统、框架开发以及服务升级等场景,因为它允许程序在不重启的情况下...

    java打包成jar并执行jar包中指定的main方法

    在将 Java 项目打包成可执行的 Jar 文件后,可以使用以下命令执行 Jar 包中的 main 方法: java -jar [jar 文件名] 其中,[jar 文件名] 是要执行的 Jar 文件的名称。 例如,要执行名为 "helloworld.jar" 的 Jar ...

    jar包中类的加载及jar中资源的使用

    1. 使用`Class.forName()`或`ClassLoader.loadClass()`:通过这两个方法可以指定`jar`包中的类路径,让类加载器找到并加载类。例如,`ClassLoader.loadClass("com.example.MyClass", true)`,其中第一个参数是类全名...

    jar包中关键字搜索

    寻找指定路径下jar包中含特定字符串的文件

    springboot 打thin 瘦包教程,jar包不包含在启动jar包中,含源代码

    "thin"打包方式是SpringBoot提供的一种优化策略,它的核心思想是将应用程序的类和配置打包到一个JAR中,但不包含任何依赖库。当启动这个JAR时,它会自动从远程仓库下载缺失的依赖。这样,我们就可以创建一个体积小的...

    JDK8 下 SpringBoot 应用动态编译 Java 源码并注入 Spring 容器

    基于接口、抽象类实现不停机动态调整代码的目的,将修改后的源码文件放置于指定目录下,读取文件后执行动态编译方法,即可将该类重新加载,新的类可以在Spring容器从新注册,且仅在当前窗口生效。如果重启了服务或...

    springboot工程jar包加密

    当一个项目被打包成jar文件后,这通常意味着它可以作为一个独立的应用程序运行。然而,随着项目的部署和分发,保护源代码和敏感信息的安全变得至关重要。"springboot工程jar包加密"这个话题就是关于如何确保Spring ...

    Spring 自动扫描 不支持jar包 的解决方案

    NULL 博文链接:https://xinglu.iteye.com/blog/1457029

    Jar包中如何正确地加载资源文件博文中用到的测试项目源码

    在Java开发中,将资源文件打包到JAR(Java Archive)包中是常见的做法,这样可以方便地分发和执行程序。然而,加载这些资源文件可能会遇到一些问题,特别是当资源文件位于类路径(classpath)的深层目录结构中时。本...

    服务器使用Nginx部署Springboot项目的详细教程(jar包)

    在本文中,我们将深入探讨如何使用Nginx部署Spring Boot应用程序,特别关注jar包的部署。首先,让我们从创建和上传jar包开始。 1. **创建jar包**: 使用Maven作为构建工具,你可以通过运行`mvn clean install`命令...

Global site tag (gtag.js) - Google Analytics