【问题标题】:Import spring boot app into another project将 Spring Boot 应用程序导入另一个项目
【发布时间】: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?

标签: maven spring-boot spring-boot-maven-plugin


【解决方案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 上导入项目?
猜你喜欢
  • 1970-01-01
  • 2011-09-22
  • 1970-01-01
  • 2018-09-07
  • 2018-08-28
  • 1970-01-01
  • 2011-07-04
  • 1970-01-01
  • 2014-10-21
相关资源
最近更新 更多