使用Maven程序集插件创建WAR文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Maven程序集插件创建WAR文件相关的知识,希望对你有一定的参考价值。
是否可以使用maven程序集插件创建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”(您可以指定任何名称)。在此描述符文件中,需要指定.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为您完成所有这些。
另一答案
只需要在下面添加:
<assembly>
...
<format>war</format>
...
</assembly>
参考:http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html
以上是关于使用Maven程序集插件创建WAR文件的主要内容,如果未能解决你的问题,请参考以下文章