我可以在多模块项目的基础上建立一场战争吗?

时间:2012-08-23 17:38:28

标签: maven maven-2

所以我有部署人员,他们不认识maven,不应该知道它。他们所需要的只是战争的新鲜结构。使用我们的系统,我非常怀疑我们可以使用插件自动部署,所以Tomcat插件已经用完了。此外,我不能简单地拥有一个依赖于其他项目的项目,因为我们的SCM不受支持......除非在项目位于本地子目录中时可以这样做。最重要的是,我也没有对组织回购的写访问权。可能这意味着我无法释放maven方式,或者如果可以的话,它会变得毫无意义。

我想知道的是,是否有一个组件(模块?)构建结构在项目的基础中具有生成的存档,这样他们就不必在令人困惑的过多组件中查找它,装配,配置文件等。

2 个答案:

答案 0 :(得分:1)

您可以使用maven-dependency-plugin。构建之后,生成的war文件将被复制到您选择的文件夹中。

例如,假设您具有以下文件结构(可以轻松调整):

- parent folder
   |- child one (jar)
   |- child two (war)

要将 child two war文件复制到父文件夹/目标目录中,您可以在子二模块的pom中使用以下声明。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.5</version>
    <executions>
      <execution>
        <id>copy</id>
        <phase>install</phase>
        <goals>
          <goal>copy</goal>
        </goals>
        <configuration>
          <artifactItems>
            <artifactItem>
              <groupId>${groupId}</groupId>
              <artifactId>${artifactId}</artifactId>
              <version>${version}</version>
              <overWrite>true</overWrite>
              <outputDirectory>${basedir}/../target</outputDirectory>
              <destFileName>${artifactId}.jar</destFileName>
            </artifactItem>
          </artifactItems>
        </configuration>
      </execution>
   </executions>
</plugin>

该插件非常方便,因为您甚至可以指定完全不同的目标文件夹(不是层次结构的一部分)。

答案 1 :(得分:0)

我不会在你的POM中反映这一点,而是在你的构建工具(例如Jenkins)中将副本作为构建后的动作。