11

そのため、Spring Boot 実行可能 jar を別のプロジェクト (テスト フレームワーク) の依存関係として追加しようとしています。

ただし、一度 pom に追加してインポートします。Java インポートが正しく機能しません。jar の中を見ると、すべてのパッケージの先頭に次のものが追加されています。

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

Spring Boot関連のパッケージ、MANIFESTなどもあります。

spring-boot-maven-plugin を使用して通常の jar をインストールしてデプロイするだけに、Spring Boot アプリのビルドを切り替えた場合ではありません

これが変更され、すべてが正常に機能します。残念ながら、リリース プロセスの一部として実行可能な jar に依存しているため、これは解決策ではありません。

両方のバージョンの jar をデプロイして、分類子を使用してそれぞれを判断することはできますか?

ありがとう

4

1 に答える 1

15

この正確なシナリオは、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>

スプリング ブート 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>
于 2016-11-01T19:59:24.503 に答える