gpt4 book ai didi

java - 使用 Maven 程序集插件创建 WAR 文件

转载 作者:搜寻专家 更新时间:2023-11-01 03:22:40 24 4
gpt4 key购买 nike

是否可以使用 ma​​ven assembly 插件 创建 war 文件,或者这个插件仅用于创建 jar 文件?

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

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

最佳答案

在 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 文件的结构需要在一个单独的 xml 文件中配置,该文件称为“web-assembly.xml”(您可以指定任何名称)。在这个描述 rune 件中,需要指定.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 为您提供了构建输出 Artifact 的极大灵 active 。但是您还需要分别复制依赖项、类文件和资源,这可能非常复杂。 maven-war-plugin 会为您完成所有这一切。

关于java - 使用 Maven 程序集插件创建 WAR 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25662048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com