我想在项目的构建周期中生成多个WAR文件。我已经知道如何使用maven-war-plugin添加多个 dest-file 和其他配置。但我想知道在构建周期中是否有办法生成不确定数量的战争,而无需为每个WAR编写配置。
我想为每个客户生成一个构建,我的项目中有以下目录结构:
| pom.xml
+ src
+ main
+ clients
+ client1
+ client2
+ client3
+ ...
+ clientn
我想知道如何为每个客户端目录生成WAR。我只是想创建一个Maven配置,然后只关心添加一个新文件夹然后mvn package
并获取 n WAR包。
有可能吗?
答案 0 :(得分:0)
似乎Maven本身不能这样做,所以我最终创建了一个脚本,为src/main/clients
中找到的每个文件夹调用Maven。
#!/bin/bash
clear
###
# Check for Apache Maven home environment variable.
###
M2_HOME=`$M2_HOME`
if [ -z "$M2_HOME" ]; then
echo "Error: M2_HOME variable not set. Please set Apache Maven home."
exit
fi
###
# Build all client packages.
###
echo "Build start."
for f in $0/src/main/clients/*
do echo Building: %f
$M2_HOME/bin/mvn package -Dclient.id=`basename $f` -Dclient.path=$f -DskipTests
done;
echo "Build end."
@ECHO off
SET M2_HOME=%M2_HOME%
CD %~p0
ECHO Build start.
FOR /r /d %%G in (src\main\client\*) DO (
ECHO Building: %%~nG
%M2_HOME%\bin\mvn package -Dclient.id=%%~nG -Dclient.path=%%G -DskipTests
)
ECHO Build end.