[英]Multiple quarkus applications in multi-module maven build with quarkus:dev
[英]Maven multi module project with Quarkus in dev mode
我是 Quarkus 的新手,並嘗試在 Maven 多模塊項目中使用它。 我的項目結構如下:
- quarkustest (pom)
- quarkustest-application (jar)
- quarkustest-backend (pom)
- quarkustest-backend-rest-api (jar)
- quarkustest-dependencies (pom)
- quarkustest-parent (pom)
應用程序模塊使用 build-goal 執行 quarkus-maven-plugin。 quarkustest-backend-rest-api
包含一個簡單的 REST 控制器,因此也在/src/main/resources/META-INF
包含一個beans.xml
。 rest-api-module 是應用程序模塊的引用。
如果我使用mvn package
整個項目,則生成的 runner-jar 會按預期工作。 但是,如果我嘗試使用mvn compile quarkus:dev
在開發模式下啟動項目, mvn compile quarkus:dev
以下異常:
錯誤] 無法在項目 quarkustest-application 上執行目標 io.quarkus:quarkus-maven-plugin:1.0.0.CR2:dev (default-cli):無法運行:無法解析 Quarkus 應用程序模型:無法解析依賴關系test.quarkustest:quarkustest-application:jar:1.0.0-SNAPSHOT: 找不到工件 test.quarkustest:quarkustest-backend-rest-api:jar:1.0.0-SNAPSHOT -> [幫助 1]
我不太確定如何解決這個問題。 Quarkus 的多模塊項目是否有任何最佳實踐? 我在這里做的任何明顯錯誤?
編輯1(相關pom文件)
quarkustest-應用程序
<parent>
<groupId>test.quarkustest</groupId>
<artifactId>quarkustest-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../quarkustest-parent</relativePath>
</parent>
<artifactId>quarkustest-application</artifactId>
<dependencies>
<dependency>
<groupId>test.quarkustest</groupId>
<artifactId>quarkustest-backend-rest-api</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-maven-plugin</artifactId>
<version>${quarkus-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
誇克測試父
<parent>
<groupId>test.quarkustest</groupId>
<artifactId>quarkustest-dependencies</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../quarkustest-dependencies</relativePath>
</parent>
<artifactId>quarkustest-parent</artifactId>
<packaging>pom</packaging>
誇克測試依賴
<groupId>test.quarkustest</groupId>
<artifactId>quarkustest-dependencies</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
...
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>${quarkus.platform.group-id}</groupId>
<artifactId>${quarkus.platform.artifact-id}</artifactId>
<version>${quarkus.platform.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>test.quarkustest</groupId>
<artifactId>quarkustest-backend-rest-api</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-maven-plugin</artifactId>
<version>${quarkus-plugin.version}</version>
</plugin>
</plugins>
</build>
quarkustest(聚合器)
<parent>
<groupId>test.quarkustest</groupId>
<artifactId>quarkustest-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>quarkustest-parent</relativePath>
</parent>
<artifactId>quarkustest</artifactId>
<packaging>pom</packaging>
<modules>
<module>quarkustest-dependencies</module>
<module>quarkustest-parent</module>
<module>quarkustest-backend</module>
<module>quarkustest-application</module>
</modules>
如果您從未運行過mvn install
可能是因為當您在子項目中時,maven 不會查看其兄弟項目來解析依賴項,它只會查看不包含依賴項的本地 maven 存儲庫。 如果你運行了mvn install
它可能是其他東西在起作用。
將 quarkus-maven-plugin 保留在 quarkustest-application 中並運行
現在它將獲取所有子模塊中的更改。
我能夠通過以下方式在開發中成功運行 quarkus 子模塊(依賴於其他模塊):
-Dmaven.am -Dmaven.pl=<name-of-you-quarkus-module>
在父 pom 中定義 quarkus 插件:
<plugin> <groupId>io.quarkus</groupId> <artifactId>quarkus-maven-plugin</artifactId> <version>${quarkus-plugin.version}</version> </plugin>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.