21

查找包含 pom.xml 文件的所有子目录然后执行的命令是什么:

mvn clean 

在那个子目录中操作?

我有包含多个 Maven 项目的工作区,我想清理所有项目。

4

4 回答 4

48

像这样的东西应该可以工作:

寻找 。-name "pom.xml" -exec mvn clean -f '{}' ;

于 2013-04-09T07:51:24.423 回答
3

通常,您会希望mvn clean在父 pom 上发布,这也会清除所有定义为模块的子代。

如果您没有并且不想要这样的父母,您将需要为此使用蛮力,这意味着类似

for dir in yourdirectory;
do
  cd $dir
  if [ -f pom.xml ];
  then
    mvn clean
  fi
done
于 2013-04-09T07:30:42.183 回答
3

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

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

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

于 2017-06-16T20:16:10.063 回答
1
find . -maxdepth 2 -name "pom.xml"  -exec mvn clean -f '{}' \;

把它放在像'cleanRepo.sh'这样的地方

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

sh cleanRepo.sh

对我来说这是最好的,因为我只使用多模块项目。

于 2021-06-01T12:12:36.847 回答