6

次のSO投稿の最初の回答のように設計されたmavenマルチモジュールプロジェクトがあります: Multi-module maven with Spring Boot

ここで、複数のマイクロサービスで使用されるいくつかのモデルを含むことができる共通の Maven モジュールが必要です。この共通プロジェクトを第 1 レベルの親 pom の子として作成すると (jpa、jackson などのようにブートによって注入されたすべての依存関係が共通で使用できるようになります)、STS/Spring はそれをブート アプリケーションとして検出し、メインがないと文句を言います。 Maven ビルドのクラス。

誰かがこれを達成する方法を提案できますか?

現在のコード:

親 pom.xml: (関連する部分のみが含まれています)

    <project>
    <name>...</name>
    <groupId>...</groupId>
    <artifactId>...</artifactId>
    <packaging>pom</packaging>
    <version>...</version>
    <parent>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-parent</artifactId>
        <version>Brixton.M3</version>
        <relativePath />
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    </project>

child (共通モジュール) pom.xml (関連部分のみ)、boot アプリにはなりません:

    <project>
    <artifactId>...</artifactId>
    <version>...</version>
    <name>...</name>

    <parent>
        <groupId>...</groupId>
        <artifactId>...</artifactId>
        <version>...</version>
    </parent>

    </project>
4

3 に答える 3

0

通常、モジュールに存在しない場合、Spring Boot は Web コンテナーを開始しません。コマンドを使用してデンデンシーを分析することをお勧めします

mvn dependency:tree 

確実にするためのもう1つの強引な方法は、application.propertiesでこの構成を使用することです

spring.main.web-environment=false
于 2015-12-21T07:36:13.523 に答える