我是新来的,并尝试在Maven多模块项目中使用它。我的项目结构如下:
- quarkustest (pom)
- quarkustest-application (jar)
- quarkustest-backend (pom)
- quarkustest-backend-rest-api (jar)
- quarkustest-dependencies (pom)
- quarkustest-parent (pom)
应用程序模块执行具有构建目标的quarkus maven插件。quarkustest后端rest api
包含一个简单的rest控制器,因此也包含一个bean。xml
在/src/main/resources/META-INF
中。RESTAPI模块由应用程序模块引用。
如果我使用mvn包
打包整个项目,那么生成的runner jar将按预期工作。但是,如果我尝试使用mvn compile quarkus:dev
在开发模式下启动项目,我会遇到以下异常:
错误]无法执行目标io。quarkus:quarkus maven插件:1.0。0.CR2:quarkustest项目应用程序上的开发(默认cli):未能运行:未能解析Quarkus应用程序模型:未能解析测试的依赖项。quarkustest:quarkustest应用程序:jar:1.0。0-SNAPSHOT:找不到项目测试。quarkustest:quarkustest后端rest api:jar:1.0。0-SNAPSHOT-
我不太清楚如何解决这个问题。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>
quarkustest父级
<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>
quarkustest依赖项
<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>
我能够成功地在dev(与其他模块的依赖)中运行夸克子模块:
-Dmaven。am-Dmaven。pl=
在父pom中定义quarkus插件:
<plugin>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-maven-plugin</artifactId>
<version>${quarkus-plugin.version}</version>
</plugin>
将quarkus maven插件保留在quarkustest应用程序中并运行
现在,它将获取所有子模块中的更改。
如果您从未运行过mvn安装
,这可能是因为当您在子项目中时,maven不会查看其兄弟项目以解决依赖关系,它只查看不包含依赖关系的本地maven存储库。如果您已经运行了mvn安装
,那么可能还有其他原因。
我曾广泛使用过Maven 目前有5个不同的maven项目,每个项目都有一个不同的pom.xml。到目前为止,它们之间存在依赖关系,如果需要,每一个都指向 中的另一个。 现在我们不喜欢的是 当我们发布子projectA时,我们需要手动修改所有将projectA作为依赖项的项目以使用新版本。Saw Maven有一个版本插件,不知道这会有什么帮助。 作为解决方案,我希望在POM之间有一个更干净的组织,并
我有一个多模块maven应用程序,我们需要通过Jenkins构建。项目结构如下: 现在,mvn清洁安装-fa.xml工作正常。为此,我创建了一个詹金斯的工作。现在,和a.xml一样,我有另一个项目b.xml.b.xml有和a.xml相同的代码,除了不同的Ids。所以,我又为詹金斯创造了一份工作b.xml.两份工作都很好。但是,现在我想根据我们在Git中提交的项目,从单个Jenkins工作中构建这两
背景资料: Maven版本:3.2.5 Java版本:1.8 cucumber报告版本:3.8.0 我有一个多模块maven java项目。我有cucumber测试和maven cucumber reporting插件,为每个模块运行和工作。 问题:我想在所有子模块构建完成后,生成一个包含所有cucumber.json文件的大型报告。 我可以吗: 在所有子模块构建和测试(创建cucumber.js
我的问题似乎类似于运行在Quarkus(gradle)上的多模块项目中的ClassCastException。 不过我用的是maven。我可以确认在使用转轮或测试时没有出现问题。我创建了一个示例应用程序,在https://github.com/AmsterdamFilho/quarkus-poc. 如果在开发模式下运行应用程序,并使用swagger ui或curl执行endpoint,则会出现异常
我正在使用Enunciate为多模块Maven项目中的RestEasy服务生成文档。在试图获取响应对象属性的描述时,我在文档生成方面遇到了一些问题。 例如,如果我的服务定义为: 当生成留档时,不生成属性描述。 在我只得到的所有响应对象中(未提供文档)。一个重要的想法是,所有响应类都位于服务所在的不同 Maven 模块中。响应类位于 UTIL 模块中。这些服务位于 EJB 模块中。 问题的原因肯定是
关于maven项目结构,我有两个问题: 1)我正在创建一个maven多模块项目,并且想知道是否可以将模块的所有公共依赖项放在父POM中?这是正确的做法吗? 2)如果我正在创建一个包含所有web.xml和JSP文件的maven webapp项目,那么web控制器、侦听器和模型对象应该驻留在哪里?在一个单独的maven jar项目中还是在同一个webapp项目中?