将 Spring Boot 应用程序导入另一个项目

Posted

技术标签:

【中文标题】将 Spring Boot 应用程序导入另一个项目【英文标题】:Import spring boot app into another project 【发布时间】:2017-03-15 00:51:52 【问题描述】:

所以我试图在另一个项目(测试框架)中添加一个 spring boot 可执行 jar 作为依赖项。

但是一旦添加到 pom 并导入。 Java 导入无法正常工作。如果我查看 jar 里面所有的包都带有:

BOOT-INF/classes.some.package.classname.class

还有一些spring boot相关的包,MANIFEST等。

如果我将 spring boot 应用程序的构建切换为使用 spring-boot-maven-plugin 安装和部署常规 jar,则不会

这种情况发生了变化,一切正常。不幸的是,这不是我们的解决方案,因为我们依赖可执行 jar 作为我们发布过程的一部分。

我可以构建部署两个版本的 jar 并使用分类器来确定每个版本吗?

谢谢

【问题讨论】:

“如果我看罐子里面” mvn install 构建 jar? 【参考方案1】:

事实证明,这个确切的场景可以使用 spring-boot-maven-plugin 来实现。

Spring boot 应用的 pom:

  <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>1.4.1.RELEASE</version>
    <executions>
      <execution>
        <goals>
          <goal>repackage</goal>
        </goals>
        <configuration>
          <classifier>exec</classifier>
        </configuration>
      </execution>
    </executions>
    ...
  </plugin>

使用spring boot jar的项目可以正常添加:

    <dependency>
        <groupId>com.springboot</groupId>
        <artifactId>app</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <scope>test</scope>
    </dependency>

或者如果你想引用可执行的jar

    <dependency>
        <groupId>com.springboot</groupId>
        <artifactId>app</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <scope>test</scope>
        <classifier>exec</classifier>
    </dependency>

【讨论】:

为我工作。它拯救了我的一天:) 我是否在第二个项目的 ClassPath 上导入项目?

以上是关于将 Spring Boot 应用程序导入另一个项目的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Spring Boot 项目创建 jar,这个 jar 我们想在另一个 Spring Boot 应用程序中使用?

使用 Maven 部署 Spring-Boot 项目并进一步将其导入其他项目

spring cloud导入一个新的spring boot项目作为spring cloud的一个子模块微服务,怎么做/或者 每次导入一个新的spring boot项目,IDEA不识别子module(代

如何使用 Spring Boot 将 CSV 文件导入 MYSQL

无法将Spring Boot依赖项从父模块导入子模块

如何从另一个新的 Spring Boot 项目调用一个 Spring Boot 项目中存在的 Spring Boot api