【问题标题】:Java | Multiple POM files in single project爪哇 |单个项目中的多个 POM 文件
【发布时间】:2021-09-05 10:25:39
【问题描述】:

我正在使用 Java 自动化框架构建一个自动化工具,用户将无法访问主 POM.xml 文件。有时用户需要添加需要额外依赖/存储库的自定义 Java 函数。目前我必须对主 POM 文件进行更改以适应用户请求。用户只能访问“src/test/java/com/script/custom”文件夹来编写自定义脚本/函数。我探索了诸如父/子 POM、插件管理、配置文件等选项,但示例主要用于多个项目。我是 NodeJs/Angular 人,所以我是 Java 初学者。

Project
  |
  |--src/test/java/com/script/custom
  |                             |
  |                             custom_code.java
  |                             |
  |                             custom_pom.xml
  |
  --pom.xml 

用户只应在 custom_pom.xml 中输入其他依赖项/存储库。父 pom.xml 仍将保存项目的主要依赖项/repos。

【问题讨论】:

  • custom_code 是否在 Project/src/main/java 或其他地方测试 Java 代码?
  • custom_code.java 在“src/test/java/com/script/custom”内
  • 这违背了 Maven 的核心概念之一:src/test 中的代码测试src/main 中的代码。另请参阅Standard Directory Layout:“src 目录包含用于构建项目、其站点等的所有源材料。它包含每种类型的子目录:[...] test 用于单元测试代码和资源”。见my answer

标签: java maven pom.xml


【解决方案1】:

运行代码(除了测试)违背了 Maven 作为构建 工具的核心概念。但是,有一些方法可以在构建时执行任意代码:

  +- project
  |  +- pom.xml
  +- custom
     +- src/main/java/com/script/custom
     |  +- CustomCode.java  ... convention for Java class names is CamelCase
     +- src/test/java/com/script/custom
     |  +- CustomCodeTest.java  ... instantiates and runs CustomCode 
     +- pom.xml  ... containing <parent><relativePath>../project

对于&lt;parent&gt;,请参阅Introduction to the POM #Project Inheritance。另请参阅Maven: Lifecycle vs. Phase vs. Plugin vs. Goal 了解更多基础知识。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多