java - 通过 Maven 插件执行在 Mojo 之间共享数据

标签 java maven maven-plugin

我正在开发一个 Maven 插件,它由 3 个继承 AbstractMojo 的 mojos 组成。

长话短说,这 3 个魔力用于:

  1. 编译一些常规脚本
  2. 使用从编译中提取的数据生成 SQL 脚本
  3. 将这些脚本加载到数据库

之前,我的第二个mojo继承了第一个,第三个继承了第二个,他们都在他们的execute()方法中调用了super.execute(),所以它们可以相互级联。

我正在重写插件以使其更简洁、设计更好,因此我删除了继承并希望依赖 Maven native 生命周期,将 3 个 mojos 绑定(bind)到 compilepackagedeploy 阶段。

我面临的问题是我无法找到一种干净的方法来将我在第一个 mojo 执行期间提取的数据传递给第二个 mojo(例如文件扩展名,如果文件已正确编译,包路径等) ). Maven 插件 API 中是否有可用的临时存储或缓存系统?

最佳答案

由于没有直接的方法在 Maven mojo 之间共享数据,我选择将需要传递给下一个 Mojo 的数据写入 CSV 文件(XML、YAML 或任何其他格式也可以完成这项工作)。

与通过执行使用存储在内存中的某些缓存或上下文相比,优势在于您可以执行一个目标,将其结果保存在文件系统中,然后在以后的任何时间执行以下目标。

关于java - 通过 Maven 插件执行在 Mojo 之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21115409/

相关文章:

java - 在 Maven Java 项目中直接使用 Jolokia JVM 代理

java - 使用 jfrog 和 android-maven-plugin 时,警告 :Dependency org. apache.httpcomponents :httpclient:4. 2.1 被忽略

java - 应用程序在 Android/SQLITE 错误中停止/

JavaFX 自定义字体

java - 将消息从 JAVA 放入队列

java - 使用 maven 使用 log4j 构建项目

Maven: Debug模式仅适用于一个插件

java - 使用 jaxws-maven-plugin 时出现问题,没有错误,但没有生成类

java - 用maven创建SAR文件有什么好方法?

java - JUnit 中的参数类型不匹配