0

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

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

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

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

是否可以?

4

1 回答 1

0

似乎 Maven 自己无法做到这一点,所以我最终创建了一个脚本,为src/main/clients.

在 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.
于 2013-07-18T14:24:17.897 回答