8

我是Maven的新手。我得到了一个新项目,它具有以下结构。

Data_Res
  |
  ---res-search
  |     |
  |     -----res-hast
  |     |       |
  |     |       ------src/main....
  |     |       |
  |     |       ------pom.xml
  |     -----res-haster
  |     |       |
  |     |       ------src/main....
  |     |       |
  |     |       ------pom.xml
  |     |
  |     ----pom.xml
  | 
  |
  ---pom.xml
  ---sonar_pom.xml

我在根 pom.xml 中看不到模块部分。但我确实在 sonar_pom.xml 中看到了模块部分。它不包括所有子节点。一个文件夹/项目可以有两个 pom 吗?或者我们可以单独执行它们吗?

  1. 我如何解释这个?子模块还是单个项目?有什么指标可以找出来吗?
  2. 我被告知要mvn clean install在 root pom 上运行。我这样做了。我被要求验证是否提供了其中一个子文件夹的所有依赖项。如何检查这些?我可以在我的主目录中的 .m2 文件夹下看到一些文件。
  3. 我如何构建/打包这个?我将在其中一个子文件夹上工作。不确定它是单独的项目还是子模块。在这种情况下,我可以直接转到该文件夹​​并mvn package / build从该文件夹运行(pom.xml 存在)吗?
4

2 回答 2

11

当您执行目标(e.g mvn install)时,如果 pom.xml 存在,maven 将检查执行文件夹中的 pom.xml,如果提到任何模块,它将执行该文件夹(即项目)的目标,相同的目标将在模块上执行,这个操作是递归的。

一个文件夹/项目可以有两个 pom 吗?

是的,一个项目可以有多个 pom,但是如果您想使用备用 pom 文件,则默认为 pom.xml,您可以-f在您的情况下使用备用 pom 文件mvn -f sonar_pom.xml clean install,可能该 pom 文件用于声纳。

我如何解释这个?子模块还是单个项目?有什么指标可以找出来吗?

如果您的本地 maven 存储库中存在父项和所有依赖项,则每个项目都有一个 pom.xml 可以独立构建。

有人告诉我在 root pom 上运行 mvn clean install。我这样做了。我被要求验证是否提供了其中一个子文件夹的所有依赖项。如何检查这些?我可以在我的主目录中的 .m2 文件夹下看到一些文件。

要验证依赖关系,请检查您的本地 maven 存储库,默认值为~/.m2/repository,但可以在 settings.xml 中更改设置。检查~/.m2/settings.xml文件是否不存在,您可以在<maven_home>/conf/settings.xml将其复制到中找到全局设置,~/.m2/然后可以覆盖它检查以下标签<localRepository>/path/to/local/repo</localRepository>

我如何构建/打包这个?我将在其中一个子文件夹上工作。不确定它是单独的项目还是子模块。在这种情况下,我可以直接转到该文件夹​​并从该文件夹运行 mvn package / build(pom.xml 存在)吗?

正如我之前提到的,mvn package如果你有父级和所有依赖项,你可以在你的模块上做。您可以通过两种方式获得这些

  1. mvn install使用或在您的系统中安装它们
  2. 使用远程存储库
于 2013-05-27T06:45:55.897 回答
2

只是为了添加已经正确的答案:在eclipse中,我必须在“Maven Build”运行配置下创建一个新的“运行配置”。我将基本目录设置为标准

${project_loc:connect}

和“目标”字段

-f pom_deploy.xml 安装 -T 1C

然后我可以右键单击自定义 pom_deploy.xml --> 运行为... --> 运行配置 --> 自定义 Maven 部署

“-T 1C”是可选的,它告诉 Maven 在构建/编译过程中同时使用多个处理器。

于 2017-08-17T16:24:19.240 回答