在子目录中找到pom并执行mvn clean

时间:2013-04-09 07:24:43

标签: bash maven

查找包含pom.xml文件的所有子目录的命令是什么,然后执行:     mvn干净 在该子目录中的操作?

我有包含多个maven项目的工作区,我想清理所有这些

4 个答案:

答案 0 :(得分:33)

这样的事情应该可行:

找到。 -name“pom.xml”-exec mvn clean -f'{}'\;

答案 1 :(得分:2)

一般来说,您可能希望在父pom上发出mvn clean,这也会清除定义为模块的所有子项。

如果您没有并且不想要这样的父母,那么您需要使用暴力,这意味着类似

for dir in yourdirectory;
do
  cd $dir
  if [ -f pom.xml ];
  then
    mvn clean
  fi
done

答案 2 :(得分:1)

我正在使用这个脚本,它仅在那些必须清理的项目上调用mvn clean(它们有一个target目录):

find . -name "target" -type d \
| sed s/target/pom.xml/ \
| tee /dev/stderr \
| xargs -I {} mvn -q clean -f {}

tee部分是可选的,它只打印出正在清理的项目。

答案 3 :(得分:0)

find . -maxdepth 2 -name "pom.xml"  -exec mvn clean -f '{}' \;

点个赞 'cleanRepo.sh'

在 unix-terminal 或 windows 上的 git-bash 中执行:

sh cleanRepo.sh

对我来说这最有效,因为我只处理多模块项目。