【发布时间】:2018-10-09 17:59:21
【问题描述】:
我想链接两个应该按顺序执行的 Maven 插件。第一个插件的输出应该用作第二个插件的输入。让我解释一下:
- 我想写一个插件来生成资源和来源,比如配置文件、Java 类……我们把这个插件叫做
generator-plugin。 - 这个插件需要输入信息来生成所有这些。可以从文件系统或 SQL 数据库中检索此信息。将来可能会引入其他几个输入源。我的想法是编写两个插件,一个用于从文件系统中获取所有信息,另一个用于从 SQL 数据库中获取信息。
这给出了:
information-plugin-file ---\
|--- generator-plugin
information-plugin-sql ---/
如何使用 Maven 来完成?你可以链接插件吗?我熟悉编写基本的 Mojo,但我不知道如何处理这个问题,因此提出了这个问题。
一种可能性是输出到information-plugin-file/information-plugin-sql 中的标准化文件,并让后续的generator-plugin 插件从同一个文件中读取(Unix 的工作方式,一切都是文件)。
但我正在寻找更直接的、Maven 特定的方法来执行此操作。有这样的办法吗?
关于执行顺序,所有插件都将在generate-sources 阶段运行,并将在<plugins> 部分中以正确的顺序定义。所以我认为这已经涵盖了。
【问题讨论】:
-
我不会创建两个插件。我会制作一个可能具有不同目标的单个插件来分离源:文件或sql并将其绑定到generate-source/test-sources......
-
@khmarbaise 你能详细说明一下吗?在我的示例中,我有 3 个插件。你打算如何准确地改变它?谢谢!
-
你知道插件可以有几个目标(实现功能的类)?这个不同的目标可以做不同的事情..例如maven-war-plugin有三个目标加上帮助目标...看看源代码github.com/apache/maven-war-plugin或官方源gitbox.apache.org/repos/asf?p=maven-war-plugin.git
标签: maven maven-plugin mojo