如何使用Maven生成不确定数量的WAR文件?

时间:2013-03-08 19:53:00

标签: maven build maven-2 build-process maven-3

我想在项目的构建周期中生成多个WAR文件。我已经知道如何使用maven-war-plugin添加多个 dest-file 和其他配置。但我想知道在构建周期中是否有办法生成不确定数量的战争,而无需为每个WAR编写配置。

我想为每个客户生成一个构建,我的项目中有以下目录结构:

| pom.xml
+ src
  + main
    + clients
      + client1
      + client2
      + client3
      + ...
      + clientn

我想知道如何为每个客户端目录生成WAR。我只是想创建一个Maven配置,然后只关心添加一个新文件夹然后mvn package并获取 n WAR包。

有可能吗?

1 个答案:

答案 0 :(得分:0)

似乎Maven本身不能这样做,所以我最终创建了一个脚本,为src/main/clients中找到的每个文件夹调用Maven。

在Unix中

#!/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."

在Windows中

@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.