Maven项目需要构建本地依赖
Maven Project Requires Local Dependency to be Built
我有 2 个 Maven 项目,A 和 B。项目 A 是完全独立的,而 B 需要 A 作为依赖项。当前,B 正在从 maven 存储库中获取 A:
<dependency>
<groupId>com.myproject</groupId>
<artifactId>projectA</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
我想做的是设置依赖关系,以便 B 可以引用 A 的本地实例。我可以执行以下操作:
<dependency>
<groupId>com.myproject</groupId>
<artifactId>projectA</artifactId>
<version>2.0.0-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${basedir}/../projectA/target/projectA-2.0.0-SNAPSHOT.jar</systemPath>
</dependency>
但这只有在 A 已经构建的情况下才有效(因此 projectA-2.0.0-SNAPSHOT.jar
已经存在)。
在我还没有构建 A 的情况下,有没有办法强制 A 在 B 之前构建?
一种方法是创建父 pom,并将这些项目添加为子模块。因此,目录结构如下所示:
+ pom.xml
|
+-A
| \
| + pom.xml
+-B
\
+ pom.xml
父 pom 将具有 <modules>
标记,添加 A
和 B
项目作为子模块:
<groupId>com.myproject</groupId>
<artifactId>parent</artifactId>
<version>2.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>A</module>
<module>B</module>
<modules>
然后,将 A
模块添加为 B
模块的依赖项。只需保持父级 A 和 B 的组 ID 相同。然后使用 artifact-id 引用模块。
pom.xml
对于 B
就像:
<parent>
<groupId>com.myproject</groupId>
<artifactId>parent</artifactId>
<version>2.0.0-SNAPSHOT</version>
</parent>
<artifactId>projectB</artifactId>
<dependencies>
<dependency>
<groupId>com.myproject</groupId>
<artifactId>projectA</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
现在,构建父 pom。它将处理构建顺序。
我有 2 个 Maven 项目,A 和 B。项目 A 是完全独立的,而 B 需要 A 作为依赖项。当前,B 正在从 maven 存储库中获取 A:
<dependency>
<groupId>com.myproject</groupId>
<artifactId>projectA</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
我想做的是设置依赖关系,以便 B 可以引用 A 的本地实例。我可以执行以下操作:
<dependency>
<groupId>com.myproject</groupId>
<artifactId>projectA</artifactId>
<version>2.0.0-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${basedir}/../projectA/target/projectA-2.0.0-SNAPSHOT.jar</systemPath>
</dependency>
但这只有在 A 已经构建的情况下才有效(因此 projectA-2.0.0-SNAPSHOT.jar
已经存在)。
在我还没有构建 A 的情况下,有没有办法强制 A 在 B 之前构建?
一种方法是创建父 pom,并将这些项目添加为子模块。因此,目录结构如下所示:
+ pom.xml
|
+-A
| \
| + pom.xml
+-B
\
+ pom.xml
父 pom 将具有 <modules>
标记,添加 A
和 B
项目作为子模块:
<groupId>com.myproject</groupId>
<artifactId>parent</artifactId>
<version>2.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>A</module>
<module>B</module>
<modules>
然后,将 A
模块添加为 B
模块的依赖项。只需保持父级 A 和 B 的组 ID 相同。然后使用 artifact-id 引用模块。
pom.xml
对于 B
就像:
<parent>
<groupId>com.myproject</groupId>
<artifactId>parent</artifactId>
<version>2.0.0-SNAPSHOT</version>
</parent>
<artifactId>projectB</artifactId>
<dependencies>
<dependency>
<groupId>com.myproject</groupId>
<artifactId>projectA</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
现在,构建父 pom。它将处理构建顺序。