我想在包含mvn clean compile
文件的Eclipse工作区的每个目录中运行pom.xml
。
我能够为包含svn update
的每个目录运行.svn
,如下所示:
PS C:\workspace> Get-ChildItem -recurse -force |
where {$_.name -eq ".svn"} |
foreach {svn update $_.parent.FullName}
但是,这提供了svn
的完整路径并从当前目录运行。 mvn clean compile
需要在目录中运行,afaik。尝试做以下,但后来我只是得到一个错误说不能为空。似乎是它抱怨的第一个cd
电话。我只是有一些语法错误,或者我使用foreach
错误?
PS C:\workspace> Get-ChildItem -recurse |
where {$_.name -eq "pom.xml"} |
foreach { cd $_.parent.name; mvn clean compile; cd ..; }
答案 0 :(得分:7)
似乎$_.parent.FullName
属性在第一种情况下工作,因为我只筛选出目录。在这种情况下,我过滤掉了文件,因此我使用$_.DirectoryName
代替了它。
PS C:\workspace> Get-ChildItem -recurse |
where {$_.name -eq "pom.xml"} |
foreach { cd $_.DirectoryName; mvn clean compile; cd ..; }