在Git合并/拉动之后使用Maven进行部分全新安装

时间:2018-11-13 23:38:17

标签: java git maven

使用终端,是否可以清理和安装git merge/pull之后发生更改(即自上次全新安装以来发生更改)的POM项目中的项目?

编辑

感谢VonC的回答,我已经完成了一个脚本,该脚本可以满足我的要求。详情请见我的答案。

2 个答案:

答案 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调用。

/