使用终端,是否可以清理和安装git merge/pull
之后发生更改(即自上次全新安装以来发生更改)的POM项目中的项目?
编辑
感谢VonC的回答,我已经完成了一个脚本,该脚本可以满足我的要求。详情请见我的答案。
答案 0 :(得分:1)
因为您可以detect the list of pom.xml
changes between two commits:
git diff --name-status <commit1> <commit2>
(另请参见“ Detail change after Git pull”)
,您可以创建一个脚本,该脚本针对每个模块执行一个mvn clean install
。
答案 1 :(得分:1)
感谢VonC的answer,我已经完成了一个脚本,可以完成我想要的事情。
该项目是一个POM项目,其中包含子POM项目,这些子POM项目包含该应用程序的主要项目。通过使当前工作的分支调用// Load input video or camera stream
cv::VideoCapture cap(0);
if (!cap.isOpened())
{
std::cout << "!!! Input video could not be opened" << std::endl;
return 1;
}
float fps = cap.get(CV_CAP_PROP_FPS);
int cols = cap.get(CV_CAP_PROP_FRAME_WIDTH);
int rows = cap.get(CV_CAP_PROP_FRAME_HEIGHT);
// Setup output video
cv::VideoWriter video("output.avi", cap.get(CV_CAP_PROP_FOURCC), fps, cv::Size(cols,rows),true)
,我达到了预期的结果。
这获得了项目中已更改文件的列表,然后将其拆分为一个数组。不幸的是,我无法使拆分工作正常,因此该数组按更改类型组织,后跟文件路径。
然后我检查了字符串大小,跳过了单个字符串。下一步是将字符串拆分为一个数组,以git diff --name-status HEAD@{1} <current_branch>
分隔。检查根目录是否存在于数组中,如果不存在则添加。
最后,循环遍历根路径数组并执行maven调用。
/