包含来自目标文件夹的 Maven 依赖项

Include maven dependency from target folder

我正在使用 Java Spring Boot 构建 Web 服务器,并使用 swagger-codegen 生成其余客户端以供其他项目使用。

我想在我的集成测试中测试 rest-client,但是在我的 target 目录(初始构建之后)中包含一个 maven 项目/jar,在我的项目的 POM 中似乎是不可能的.

是否可以使用这个新的依赖项构建这些测试?

我需要做一些假设,如果我完全错了请告诉我。

I'm building a web server

表示您正在创建 REST 服务?

I want to test the rest-client in my integration tests

意味着您(可能)对客户端进行了单元测试,并希望在集成测试中将此客户端作为一个模块使用和集成测试?

我建议你

  • 为客户创建(如果尚未创建)一个单独的项目。
  • 将其安装到您的本地存储库,例如:mvn install
  • 将此已安装的工件作为依赖项添加到您需要的任何地方,例如在与服务的集成测试中。

我真的不建议 从目标文件夹中包含 maven 依赖项 但不能说在某些情况下它是否绝对必要...

目标文件夹中的 jar 以两种方式到达该位置:

  • 已在打包阶段构建。
  • 它已被插件从本地存储库复制到那里。

无论哪种方式,您都不应该使用目标中的文件。相反,将依赖项(真正的依赖项或 pom 中的项目)添加到服务器的测试依赖项中。 运行 你在整合阶段的测试。

我最终创建了一个多模块项目,一个用于服务器,一个用于其余客户端(取决于服务器)和一个用于集成测试(取决于其余客户端)

每个模块都有自己的 pom 文件,并且有自己的构建/发布阶段。虽然我仍然无法让顶级 mvn clean install 工作(这是设置我们的网络应用程序的标准),但我能够在 bash 脚本中使用多个 mvn 命令进行协调安装.