批量Maven构建具有2个单独版本

时间:2014-04-02 17:51:13

标签: maven batch-file command-line maven-2 maven-3

我正在尝试在批处理脚本中构建一大堆maven项目。有2套使用(要求)不同版本的maven。含义:一半项目使用Maven 3.1.1,另一项使用2.2.1,但其中一些使用maven 2的项目需要一些maven 3项目。 我试图在一个脚本中这样做:

 setx M2 %APACHE%\apache-maven-3.1.1\bin\
 rebuildCore
 setx M2 %APACHE%\apache-maven-2.2.1\bin\
 rebuildApp
 7z x "%workspace%\win32-app\target\win32-product-0.0-SNAPSHOT.zip" -o%Desktop% *.* -r -y > nul

%APACHE%变量指向两个maven安装的位置,%Desktop%指向我的桌面,%workspace%指向我的eclipse工作区。

rebuildCore和rebuildApp是另外两个用于构建我的项目的批处理脚本,这些脚本工作正常。

我面临的问题是maven在命令提示符启动后不会改变它在运行时指向的内容,并且必须关闭所有窗口才能刷新它。

有没有办法完全关闭所有命令提示符或powershell窗口并在不启动新脚本的情况下运行它?我知道这似乎不太可能,这就是我遇到问题的原因。

1 个答案:

答案 0 :(得分:0)

如果在路径中使用符号链接(例如,环境变量M2指向C:\ maven \ bin;而C:\ maven是指向C:\ Program Files \ Apache \ apache-maven-xxx的符号链接),则此方法有效),以便您可以删除脚本中间的符号链接或NTFS联结,并将其重新创建到另一个版本的Maven。我如何改变这个的例子:

cd C:\
rmdir maven
mklink /j maven "%APACHE%\apache-maven-3.2.1"
start /wait cmd /q /c rebuildCore.bat
cd C:\
rmdir maven
mklink /j maven "%APACHE%\apache-maven-2.2.1"
start /wait cmd /q /c rebuildApp
:: THIS LAST LINE EXTRACTS MY RCP APP FROM THE BUILT ZIP FILE TO A FOLDER ON MY DESKTOP
7z x "C:\Users\USER\workspace\app-win32-std-product\target\app-win32-std-product-2.4-SNAPSHOT.zip" -oC:\Users\USER\Desktop\ *.* -r -y