【问题标题】:Create a WAR file by using Maven assembly plugin使用 Maven 程序集插件创建 WAR 文件
【发布时间】:2014-09-04 09:36:35
【问题描述】:

是否可以使用 ma​​ven 程序集插件 来创建 war 文件,还是这个插件仅用于创建 jar 文件?

在 Maven 程序集插件中需要配置什么来创建一个 war 文件?

我不想使用 maven 战争插件,因为我的战争文件需要更多可能性(例如,我的特定战争文件有两个不同的输出目录,我的意思是目标路径和我的 maven 中的另一个路径项目)。如果我用这个插件创建一个 jar 文件,那么使用 maven 程序集插件就没有问题。

【问题讨论】:

  • 使用两个单独的执行块代替 maven-assembly...

标签: java maven maven-assembly-plugin


【解决方案1】:

在 maven-assembly-plugin 中,您定义 .war 文件的名称(我称它为 ROOT,因为它是主应用程序)以及应该执行插件的阶段。 appendAssemblyId 属性定义是否应将“-war”附加到文件名(例如“ROOT-war.war”)。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.1.1</version>
    <configuration>
        <descriptors>
            <descriptor>war-assembly.xml</descriptor>
        </descriptors>
        <finalName>ROOT</finalName>
        <appendAssemblyId>false</appendAssemblyId>
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

生成的 .war 文件的结构需要在名为“web-assembly.xml”的单独 xml 文件中配置(您可以指定任何名称)。在这个描述符文件中,需要指定.war文件中的文件和目录以及对应的输出目录。

<assembly>
    <id>war</id>
    <formats>
        <format>war</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
        <dependencySet>
            <outputDirectory>WEB-INF/lib</outputDirectory>
            <excludes>
                 <exclude>*:war</exclude>
            </excludes>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <fileSet>
            <directory>${project.build.directory}/classes</directory>
            <outputDirectory>WEB-INF/classes</outputDirectory>
            <includes>
                <include>/**/*</include>
            </includes>
        </fileSet>
        ...
    </fileSets>
</assembly>

maven-assembly-plugin 为您提供了如何构建输出工件的极大灵活性。但是您还需要分别复制依赖项、类文件和资源,这可能非常复杂。 maven-war-plugin 为您完成所有这些工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    • 2013-02-03
    • 2018-11-10
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    相关资源
    最近更新 更多