关于linux:迭代目录以查找pom.xml文件

Iterating over directories to find pom.xml file

目前,我有一个命令,它循环访问目录列表(我不知道目录的名称),然后将cd导入目录,最终执行maven install命令。但是,我注意到只有一个目录包含pom.xml。不需要在其他目录上运行maven命令。有没有一种方法可以循环访问目录并在保存pom.xml的目录中停止,然后执行maven命令并中断循环?

1
for d in */ ; do (cd"$d" && maven install -Dmaven.test.skip=true); done


您可以用find命令替换您的循环。例如:

1
find * -name pom.xml -execdir maven install -Dmaven.test.skip=True \;

有关详细信息,请参见手册页。-execdir选项在包含pom.xm的目录中运行给定的命令。这将在整个目录树中重复出现;为了使其更准确地与shell脚本等效,可以限制其下降的深度:

1
find * -name pom.xml -maxdepth 1 -execdir maven install -Dmaven.test.skip=True \;