
[英]How can I use a Maven project as a dependency to another Maven project?
[英]How can I add a spring-based project as a Maven dependency in another project?
我从 spring initalizr 创建了项目 A,pom.xml 看起来基本上是这样的:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.0-SNAPSHOT</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>my.group.id</groupId>
<artifactId>projectA</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>ProjectA</name>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- [...] many more Spring and non-spring related dependencies -->
</dependencies>
<!-- org.springframework.boot plugin, repositories and plugin repos here -->
这是一个独立的项目,因为它能够从主 class 作为 Spring 应用程序运行。 这对于测试目的非常有用。
我希望能够将项目 A 用作另一个项目(项目 B)的一部分 - 也就是说 - 另一个 Spring 应用程序应该扫描 ProjectA 的所有 bean 除了它自己的。 ProjectA 在 /resources 文件夹中还有一些文件需要保持可用。 (理想情况下,这些最终会出现在最终可执行 jar 的根目录中)。
我尝试在我的本地存储库中安装 PrA (IntelliJ 在 Maven 菜单下有一个方便的intall选项)并将其作为依赖项添加到Project B中,但是它既不导入它自己的依赖项(所以项目 B 中的 spring 注释将不起作用)也不是它的类。 将依赖类型指定为pom
解决了第一个问题,但没有解决第二个问题。
现在,项目 B可以使用项目 A 的所有依赖项,而无需导入它们。 但是,在项目 B 中不能看到、扫描甚至导入项目 A 的任何类。
我究竟做错了什么? 对不起,Maven 对我来说仍然很模糊。
我努力了:
<build></>
部分。 它没有任何改变。 Jar 文件由spring boot
生成,它是可执行文件 jar。
它包含spring boot
加载程序、所有应用程序依赖项、应用程序配置,当然还有应用程序类,但仅在spring boot
加载程序可见的特殊目录中。
原版 jar 作为副本保留在target/project-version.jar.original
version 中。jar.original 你可以比较 output 的:
jar --list --file=target/project-version.jar.original
jar --list --file=target/project-version.jar
因此,您不能将spring boot
应用程序用作依赖项。
为了在两个spring boot
应用程序之间共享一些代码,您应该创建另一个项目 -标准 jar - 而不是 spring 引导应用程序与共享人员,并将其用作两个应用程序的依赖项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.