使用 Maven 时管理构建任务的流行方法是什么?我目前使用 Maven 进行依赖管理,但我需要定义几个“任务”,这些“任务”可以独立于生命周期随时执行,类似于 Ant 或 Rake 提供的;只是一个简单的“函数”,只要按名称调用它就会执行一系列步骤。
例如,一个“任务”是jar
从用户提供的文件夹中获取一个文件,使用该命令将其安装在与我的一个 Maven 模块关联的本地 Maven 存储库中mvn install:install-file -DlocalRepositoryPath=repo
,然后将该模块的 pom.xml 更改为指向新的jar 的版本。该任务与生命周期无关,它只是执行某些特定事情的一般任务,因此我不必手动执行,只要键入 eg 即可随时执行mvn task:update-jar
。
另一个例子是一个“任务”,它删除我的一个 Maven 模块中的目录内容,然后将内容从用户提供的目录复制到清空的目录中。同样,此任务与 Maven 或依赖项无关,但最好不要一直手动执行。
人们是如何编写这些任务的——这一定是一个普遍的问题?我知道 maven 提供了antrun
插件,但据我所知,它只能绑定到 Maven 生命周期阶段,这不是我想要的。除了 maven 之外,我还可以将 Ant 与 build.xml 文件一起使用,但如果 Maven 可以以某种方式配置为自己做我想做的事,那就太愚蠢了。此外,同时要求 Maven 和 Ant 来管理我的项目似乎不是最优的。