如何使用LinuxFind命令清理所有maven项目?
我想立刻清理我所有的maven项目。但是我想避免一步一步地手动浏览所有文件夹,然后调用如何使用LinuxFind命令清理所有maven项目?,linux,maven,cygwin,Linux,Maven,Cygwin,我想立刻清理我所有的maven项目。但是我想避免一步一步地手动浏览所有文件夹,然后调用mvnclean。所以我想用find命令来实现这一点。我打了以下电话: find . -name pom.xml -exec mvn clean {} \; 结果是错误消息:find:“-exec”缺少参数 现在我的问题是:是否可以使用find和exec进行这样的调用?我想我可以使用每个命令作为find-exec的参数 提前谢谢 Hardie如果您展开exec将为您运行的内容: mvn clean dir1/
mvnclean
。所以我想用find命令来实现这一点。我打了以下电话:
find . -name pom.xml -exec mvn clean {} \;
结果是错误消息:find:“-exec”缺少参数
现在我的问题是:是否可以使用find和exec进行这样的调用?我想我可以使用每个命令作为find-exec的参数
提前谢谢
Hardie如果您展开exec将为您运行的内容:
mvn clean dir1/dir2/pom.xml
您将看到您将pom文件视为maven目标
您应该使用-f标志和撇号(以防止全球化):
至于我,我使用这个命令
find . -name 'target' -a -type d -exec rm -rfv '{}' \;
这将删除所有目标文件夹。如果展开exec将为您运行的内容:
mvn clean dir1/dir2/pom.xml
您将看到您将pom文件视为maven目标
您应该使用-f标志和撇号(以防止全球化):
至于我,我使用这个命令
find . -name 'target' -a -type d -exec rm -rfv '{}' \;
这将删除所有目标文件夹。我不确定哪个版本的mvn命令支持这样指定pom文件,但对于例如Maven 3.x,这不起作用。我们需要一点零钱。使用-execdir运行,它会自动将目录更改为找到的pom文件的位置(通常比-exec更安全): 或使用指定的备用pom文件选项-f:
find . -name pom.xml -exec mvn clean -f '{}' \;
我不确定哪个版本的mvn命令支持这样指定pom文件,但对于例如Maven 3.x,这不起作用。我们需要一点零钱。使用-execdir运行,它会自动将目录更改为找到的pom文件的位置(通常比-exec更安全): 或使用指定的备用pom文件选项-f:
find . -name pom.xml -exec mvn clean -f '{}' \;
如果您和我一样,有相当多的maven项目被签出,那么建议的方法可能需要几个小时。 我目前有700个项目已签出
find . -maxdepth 3 -type f -name pom.xml |
sed 's|/pom.xml$|/target|' |
xargs -I{} bash -c '[ -d {} ] && echo {}' |
xargs -I{} bash -c 'mvn clean -f "$(sed "s|/target$|/pom.xml|" <<< "{}")"'
find-maxdepth 3-类型f-名称pom.xml |
sed's |/pom.xml$|/target |'|
xargs-I{}bash-c'[-d{}]&&echo{}'|
xargs-I{}bash-c'mvn clean-f“$(sed“s |/target$|/pom.xml |“如果您和我一样有很多maven项目被签出,那么建议的方法可能需要几个小时。
我目前有700个项目已签出
find . -maxdepth 3 -type f -name pom.xml |
sed 's|/pom.xml$|/target|' |
xargs -I{} bash -c '[ -d {} ] && echo {}' |
xargs -I{} bash -c 'mvn clean -f "$(sed "s|/target$|/pom.xml|" <<< "{}")"'
find.-maxdepth 3-type f-name pom.xml |
sed's |/pom.xml$|/target |'|
xargs-I{}bash-c'[-d{}]&&echo{}'|
xargs-I{}bash-c'mvn clean-f“$(sed“s |/target$/pom.xml |”就是这样。使用撇号就可以了。您的解决方案也很好。非常感谢。如果您在Windows上使用Cygwin使用pwd
-查找'pwd'-name'pom.xml'-exec mvn clean'{/code>或查找'pwd'-name'target'-a-type-exec-rm}{}{}“\;
就是这样。使用撇号效果很好。您的解决方案也是一个很好的解决方案。非常感谢。如果您在Windows上使用Cygwin,请使用pwd
-find`pwd`-name'pom.xml'-exec mvn clean'{}\
或find`pwd`-name'target'-a-type-exec rm-rfv'{}\