【发布时间】:2018-02-23 11:55:59
【问题描述】:
我已经阅读了很多关于 Maven 入门的文档和教程。但是我仍然不清楚一些事情:
1) 当 pom.xml 包含 <dependency> 时,Maven 会将那个工件/JAr 放入 Maven 本地存储库中。对吧?
2) 假设,我的 MAven 项目中有子模块。那么构建项目的正确方法是什么?一个应该从父模块开始,然后去进一步的子模块。正确的 ?这样maven会创建依赖jar并将它们放在本地Maven Repo文件夹中?
3) 例如,如果我的子模块 pom.xml 包含以下依赖项。我应该如何将它(vd-ps.jar)提供给 Maven,以便当我在 Submodule/pom.xml 上执行 Maven 全新安装时 Maven 找到它?我的意思是说 Maven 需要什么或者它从哪里生成这样的用户定义的 vd-ps.jar ?来自编译的类文件?
<dependencies>
<dependency>
<groupId>com.b.t</groupId>
<artifactId>vd-ps</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>
好的,我直接问我想要实现什么:我有以下pom.xml。并从中我想创建一个单独的 maven 项目(说 PTest),它使用另一个大型多模块 maven 项目的依赖项(jar)。这里:-我的多模块项目中有一个名为 v-parent 的模块,它的主干文件夹中有 pom.xml。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.b.t</groupId>
<artifactId>v-parent</artifactId>
<version>3.9.0</version>
</parent>
<groupId>com.b.t.test</groupId>
<artifactId>p_test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>ptesting</name>
<dependencies>
<dependency>
<groupId>com.b.t</groupId>
<artifactId>v-ps</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>
</project>
1) 现在我应该把这个子模块 v-parent 放在我在 eclipse 中新创建的 Maven 项目 (PTest) 的什么位置?
我的意思是如何让我的 PTest/pom.xml 找到这个父 jar v-parent.jar?
我有一个名为 v-ps.jar 的单独 jar 文件。我应该将它准确地放在 Maven 本地仓库中的哪个位置(在哪个结构中)以便它可以找到它?
【问题讨论】: