使用相对路径将一个 Maven 项目包含到另一个 Maven 项目中
Posted
技术标签:
【中文标题】使用相对路径将一个 Maven 项目包含到另一个 Maven 项目中【英文标题】:include one maven project into another maven project using the relative path 【发布时间】:2021-02-08 14:04:53 【问题描述】:我有 3 个 maven 应用程序。
library-module:可复用的通用代码 book-application:一个使用来自library-module
的类的Web应用程序
blog-application:一个 Web 应用程序,它也使用来自 library-module
的类。
以下是模块的 pom:-
....
<!--library-application pom -->
<groupId>com.piyush</groupId>
<artifactId>library-module</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
....
....
<!--book-application pom-->
<groupId>com.piyush</groupId>
<artifactId>book-application</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
....
....
<!--blog-application pom-->
<groupId>com.piyush</groupId>
<artifactId>blog-application</artifactId>
<version>1.0</version>
<packaging>war</packaging>
....
现在我想将 library-application
作为依赖添加到 book-application
和 blog-application
作为依赖,如下所示:-
....
<dependency>
<groupId>com.piyush</groupId>
<artifactId>library-module</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
....
现在这里的问题是我希望在编译book-application
或blog-application
之前或期间生成library-application
jar。这样我就不必将 jar 添加为提供的依赖项。
【问题讨论】:
【参考方案1】:如果您想在一个构建中构建所有三个工件,您可以构建一个包含三个模块的多模块项目。
【讨论】:
感谢您的回复,但是多模块的方式恐怕不符合我的要求。这两个模块相互独立,并且具有不同的生命周期。它们之间唯一的共同点就是公共库。 那么你要么需要在 Jenkins 中构建一些东西(一些构建触发),要么你需要一个接一个地手动构建工件。没有 Maven 支持。以上是关于使用相对路径将一个 Maven 项目包含到另一个 Maven 项目中的主要内容,如果未能解决你的问题,请参考以下文章
maven项目只能读到绝对路径下的文件,读不到相对路径下的文件