使用Maven时,管理构建任务的流行方法是什么?我目前正在使用Maven进行依赖性管理,但是我需要定义几个可以独立于生命周期执行的“任务”,类似于Ant或Rake提供的生命周期。只是一个简单的“函数”,无论何时按名称调用它都会执行一系列步骤。
例如,一项“任务”是从用户提供的文件夹中获取一个jar
文件,使用mvn install:install-file -DlocalRepositoryPath=repo
命令将其安装在与我的一个maven模块关联的本地Maven存储库中,然后更改该模块的pom。 xml指向jar的新版本。该任务与生命周期无关,它只是做一些特定事情的常规任务,因此我不必手动执行,只要我想输入任何内容即可执行,例如mvn task:update-jar
。
另一个示例是“任务”,该任务删除我的一个Maven模块中的目录内容,然后将内容从用户提供的目录复制到清空的目录中。同样,此任务与Maven或依赖关系无关,但是最好不要一直手动进行。
人们如何编写这些任务-这一定是一个常见问题?我知道maven提供了antrun
插件,但据我所知它只能绑定到Maven生命周期阶段,这不是我想要的。除了可以将Maven与build.xml文件一起使用之外,我还可以使用Ant,但是如果可以将Maven配置为自行执行我想要的操作,那真是愚蠢。此外,要求Maven和Ant都管理我的项目似乎不是最佳选择。
最佳答案
如果您坚持要像这样进行构建,那么Maven将不是您的正确选择。
但是,如果您只想依赖管理,则可以使用其他方法,例如
摇篮
常春藤+蚂蚁
它们为您提供了使用Maven存储库的依赖关系管理的直接支持,但使您可以完全控制构建脚本的流程。