使用 Maven 时管理构建任务的流行方法是什么?我目前正在使用 Maven 进行依赖管理,但我需要定义几个可以随时独立于生命周期执行的“任务”,类似于 Ant 或 Rake 提供的功能;只是一个简单的“函数”,每当通过名称调用时,它都会执行一系列步骤。
例如,一个“任务”是从用户提供的文件夹中获取一个 jar
文件,使用 将其安装在与我的 Maven 模块之一关联的本地 Maven 存储库中mvn install:install-file -DlocalRepositoryPath=repo
命令,并更改该模块的 pom.xml 以指向新版本的 jar。此任务与生命周期无关,它只是执行某些特定操作的一般任务,因此我不必手动执行此操作,可以随时通过键入例如执行mvn 任务:update-jar
。
另一个例子是一个“任务”,它删除我的一个 Maven 模块内的目录内容,然后将内容从用户提供的目录复制到空目录中。再说一次,这个任务与 Maven 或依赖项无关,但最好不要一直手动执行。
人们如何编写这些任务 - 这一定是一个常见问题?我知道 maven 提供了 antrun 插件,但据我所知它只能绑定(bind)到 Maven 生命周期阶段,这不是我想要的。除了 Maven 之外,我还可以使用 Ant 和 build.xml 文件,但如果 Maven 可以以某种方式配置为自行执行我想要的操作,那就太愚蠢了。另外,需要 Maven 和 Ant 来管理我的项目似乎不太理想。
最佳答案
如果您坚持让您的构建工作像这样,Maven 将不是您的正确选择。
但是,例如,如果您只想进行依赖项管理,您还有其他选择
- Gradle
- Ivy + Ant
它们为您使用 Maven 存储库提供依赖管理的直接支持,同时让您完全控制构建脚本的流程。
关于java - Maven:在生命周期之外构建任务(更新/复制文件等)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21859092/