代码之家  ›  专栏  ›  技术社区  ›  Rubens Mariuzzo Salakar

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

  •  0
  • Rubens Mariuzzo Salakar  · 技术社区  · 12 年前

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

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

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

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

    有可能吗?

    1 回复  |  直到 12 年前
        1
  •  0
  •   Rubens Mariuzzo Salakar    12 年前

    看起来Maven自己无法做到这一点,所以我最终创建了一个脚本,为中的每个文件夹调用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.