问题描述
我正在底层使用 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 仍将保留项目的主要依赖项/存储库。
解决方法
运行代码(除了测试)违背了 Maven 作为构建工具的核心概念。但是,有一些方法可以在构建时执行任意代码:
- Exec Maven Plugin
- 没有额外的插件(以及干净分离的项目):
+- 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
对于 <parent>
,请参阅 Introduction to the POM #Project Inheritance。另请参阅 Maven: Lifecycle vs. Phase vs. Plugin vs. Goal 了解更多基础知识。