我想在我们的项目中自动创建分支的过程。下面是使用Anthill Web UI手动完成的步骤。 在我们的Anthill中,我们有大约250个Java项目,其工作流程以它们的发布名称命名,如RB-16.4.5。
第1步:使用 RB-16.4.5 等当前分支复制每个项目的工作流程。
步骤2:将工作流程名称编辑为新的分支名称,如RB-16.4.6,并将源URL更改为最新的分支名称,如 somelocation / branches / 16.4.6 / projects /项目A
第3步:对于许多项目,我们在Anthill中添加了Dependents。因此我们希望使用最新的Branch项目更新它们。所以我们要做的是删除旧的依赖项分支名称,如 ProjectA RB-16.4.5 ,并通过转到创建的新工作流程的管理TAB添加新的依赖项,并使用文件夹名称ProjectA RB-16.4.6搜索新项目
现在我编写的代码在前两步工作正常但是我无法找到如何为第3步编写代码。因为我无法弄清楚如何获得新工作流的最新依赖项目上面创建的。来自Anthill文档。我们无法将依赖项的名称设置或更改为新名称。
上提供的官方Java Remoting APIAnthillClient client;
String currentBranch="RB-16.4.5";
String newBranch="RB-16.4.6";
UnitofWork uow=client.createUnitOfWork();
Folder[] allFolders=FolderFactory.getInstance().restoreAll();
Project[] myProjects={};
for(int i=0;i<allFolders.length;i++){
if(allFolders[i].getName().equals("MyPrjFolder")){
myProjects=allFolders[i].getProjects();
break;
}
//For each project copy the workflow and set New branch name & Source URL
for(int j=0;j<myProjects.length;j++){
Workflow flow=WorkflowLookup.getForProjectAndName(myProjects[j],newBranch);
Workflow newworkFlow=flow.duplicateForCopy(myProjects[j]);
newworkFlow.setUnitOfWork(uow);
newworkFlow.setName(newBranch);
newworkFlow.setNew(true);
newworkFlow.setActive(true);
SvnSourceConfig svnConfig=
(SvnSourceConfig) newWorkFlow.getBuildProfile().getSourceConfig();
SvnModule[] svnModule=svnConfig.getModuleArray();
String sourceURL=svnModule[0].getUrl();
svnModule[0].setUrl(sourceURL.replace(currentBranch,newBranch));
// Store the dependencies of old project branch in a list
Dependency
existingDependencies=flow.getBuildProfile().getAnthillDependencyArray();
someList.add(existingDependencies);
}
/*Now how do i set the Dependencies for each Project with new Project of
the new Branch if i have already stored the old dependecies of projects*/
// Code to create and add dependency should be something like
// How do i get the newDependency value which refers to the Project under new workflow created
Dependency newDependency=null;
newDependency= Dependency.createDependency(existingDependencies[i].getDependent),newDependency.getDependency());
}
答案 0 :(得分:0)
不同的方法怎么样?从最终用户获取分支名称作为输入?