簡體   English   中英

多模塊Spring Boot和入門級

[英]Multi-module Spring Boot and start-class

我已將應用程序做成多模塊,並計划最終將它們拆分成多個存儲庫。

我在弄清楚如何使mvn spring-boot:run與我的布局一起工作時mvn spring-boot:run問題(可能是問題所在)。

實際上目錄結構是

 xenoterracide/
     rpf/
     rpf-application/

當我從xenoterracide運行mvn test ,它通過得很好,而當我啟動正常工作的Application類時。

如果我進入rpf-application並運行mvn compile它告訴我找不到依賴項,我猜這是因為事情是從倉庫根目錄運行的。

[INFO] ------------------------------------------------------------------------
[INFO] Building rpf-application 0.1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for com.xenoterracide:security-rbac-jpa:jar:0.1.0-SNAPSHOT is missing, no dependency information available
[WARNING] The POM for com.xenoterracide:http:jar:0.1.0-SNAPSHOT is missing, no dependency information available
[WARNING] The POM for com.xenoterracide:rpf-domain:jar:0.1.0-SNAPSHOT is missing, no dependency information available
[WARNING] The POM for com.xenoterracide:rpf-liquibase:jar:0.1.0-SNAPSHOT is missing, no dependency information available

如果我嘗試在xenoterracide/pom.xml設置start-class ,它會告訴我找不到該類(因為它在rpf應用程序中)。

rpf-application/pom.xml

<parent>
    <artifactId>rpf</artifactId>
    <groupId>com.xenoterracide</groupId>
    <version>0.1.0-SNAPSHOT</version>
    <relativePath>../rpf/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>rpf-application</artifactId>

<properties>
    <start-class>com.xenoterracide.RpfApplication</start-class>
</properties>

<dependencies>
    <!-- internal -->
    <dependency>
        <groupId>com.xenoterracide</groupId>
        <artifactId>security-rbac-jpa</artifactId>
        <version>0.1.0-SNAPSHOT</version>
    </dependency>

    <dependency>
        <groupId>com.xenoterracide</groupId>
        <artifactId>http</artifactId>
        <version>0.1.0-SNAPSHOT</version>
    </dependency>

    <dependency>
        <groupId>com.xenoterracide</groupId>
        <artifactId>rpf-domain</artifactId>
        <version>0.1.0-SNAPSHOT</version>
    </dependency>

    <dependency>
        <groupId>com.xenoterracide</groupId>
        <artifactId>rpf-liquibase</artifactId>
        <version>0.1.0-SNAPSHOT</version>
    </dependency>
...

rpf/pom.xml

<parent>
    <artifactId>xenoterracide</artifactId>
    <groupId>com.xenoterracide</groupId>
    <version>0.1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>rpf</artifactId>
<packaging>pom</packaging>
<modules>
    <module>../rpf-domain</module>
    <module>../rpf-application</module>
    <module>../rpf-liquibase</module>
</modules>

pom.xml

<modelVersion>4.0.0</modelVersion>

<groupId>com.xenoterracide</groupId>
<artifactId>xenoterracide</artifactId>
<packaging>pom</packaging>
<version>0.1.0-SNAPSHOT</version>
<modules>
    <module>util</module>
    <module>http</module>
    <module>security-rbac-api</module>
    <module>security-rbac-jpa</module>
    <module>hibernate</module>
    <module>entity-jpa</module>
    <module>rpf</module>
    <module>test-repositories</module>
    <module>entity-api</module>
</modules>
<properties>
    <!-- use UTF-8 for everything -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<parent>
    <groupId>io.spring.platform</groupId>
    <artifactId>platform-bom</artifactId>
    <version>1.1.2.RELEASE</version>
 </parent>

如何使mvn spring-boot:run從存儲庫的根目錄(xenoterracide)或rpf-application

我也有一個多項目的Spring Boot應用程序,您不能從父級那里做,因為可能有多個模塊,而且它不知道要運行哪個模塊。 如果您首先將項目的其余部分安裝到本地Maven存儲庫,則可以從子模塊執行此操作。 因此,從您的xenoterracide運行:

mvn install

假設可行,它將把您的SNAPSHOT版本放入本地存儲庫。 然后,您可以更改為rpf應用程序,然后運行:

mvn spring-boot:run

我從未真正使用過這種方法來運行它,因此也許您可以解釋您的需求,然后我們看看是否還有另一種方法可能會更好。 我確實在我的項目中做到了這一點,並且可以正常工作,但是您必須意識到工作目錄在特定於環境的配置文件中的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM