从多个Git Repos中提取并构建的脚本(Maven项目)

时间:2018-09-06 10:06:38

标签: windows git maven batch-file

我希望创建一种可以自动拉出并构建多个git repos的脚本(Windows机器)

本地git存储库如下:

  

C:\ Users \ user \ Git \ projectA \ projectA

     

C:\ Users \ user \ Git \ projectB \ projectB

     

C:\ Users \ user \ Git \ projectC \ projectC

     

C:\ Users \ user \ Git \ projectD \ projectD

在执行此操作时,将切换到所包含文件夹的development分支:

So this would run something like this:
  

cd projectA

     

cd projectA

     

git checkout开发

     

mvn全新安装

     

cd ..

     

cd ..


在所有包含的项目中依此类推


  

cd projectB

     

cd projectB

     

git checkout开发

     

mvn全新安装

     

cd ..

     

cd ..

任何朝着正确方向的指导将不胜感激。

2 个答案:

答案 0 :(得分:1)

您可以运行括号循环,以cd到达每个路径并执行任务,如果您指定了父路径并且无需cd..

for /D %%a in ("C:\Users\user\Git\*") do ( 
    cd "%%a"
    git checkout develop 
    mvn clean install
)

根据您对问题和评论的更改,如果您的子项目文件夹与父文件夹名称相同,则只需执行以下操作:

for /D %%a in ("C:\Users\user\Git\*") do ( 
    cd "%%a\%%~na"
    git checkout develop 
    mvn clean install
)

如果您在git中除项目文件夹之外还有其他文件夹,并且只想对项目文件夹使用cd,则:

for /D %%a in ("C:\Users\user\Git\project*") do ( 
    cd "%%a\%%~na"
    git checkout develop 
    mvn clean install
)

关于您的最后一条评论,您真正能够做到这一点的唯一方法是使用循环,但要在for循环中指定每个订单:

for %%a in (B,C,A) do ( 
    cd "C:\Users\user\Git\project%%a\project%%a"
    git checkout develop 
    mvn clean install
)

,或者即使您想指定完整文件夹,如果它们可能具有不同的名称,例如:

for %%a in (projectB,NewProjectC,AnotherProjectA) do ( 
    cd "C:\Users\user\Git\%%a\%%a"
    git checkout develop 
    mvn clean install
)

这些问题是,如果您有许多项目要运行,那么对于循环来说将非常大。

答案 1 :(得分:0)

在批处理文件中,您可以执行以下操作:

for /D %s in (.\*) do
    cd %s
    git checkout develop
    mvn clean install
    cd ..
相关问题