创建一个zip文件,并使用maven将其添加到war文件中

埃迪

我有一些示例RESTful客户端项目以及我正在研究的RESTful Java Web服务。基本上,不应构建这些项目,而应将其压缩并包含在war文件中,以便在部署war文件时将它们用作静态资源。这样可以轻松地将示例客户端与实际的Java Web服务一起更新,并确保将它们一起部署。

我已经能够使用maven程序集插件来创建一个zip文件,但是该阶段在war阶段之后执行。我无法弄清楚创建zip文件所需的Maven要求,然后将其添加到war文件中。

这是我到目前为止所拥有的,但是仅完成了一半的工作。另外,我需要移动ExampleProject目录,以便解压缩的文件不会进入最终的war文件。

pom.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <descriptor>src/assembly/AssembleExamples.xml</descriptor>
        <finalName>examples.zip</finalName>
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

AssembleExamples.xml

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
    <id>bin</id>
    <formats>
        <format>zip</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <directory>${project.basedir}/WebContent/docs/</directory>
            <outputDirectory/>
            <includes>
              <include>ExampleProject/pom.xml</include>
              <include>ExampleProject/src/**</include>
            </includes>
        </fileSet>
    </fileSets>
</assembly>
埃迪

这是我最终完成此操作的方式。

多亏了Mithun,我才意识到有两种配置war插件的方法,而我这样做的方式不适合我的情况。

这是我添加到pom文件中的内容:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <executions>
        <execution>
            <configuration>
                <descriptor>src/assembly/AssembleJavaExample.xml</descriptor>
                <finalName>myexample</finalName>
                <appendAssemblyId>false</appendAssemblyId>
                <outputDirectory>${project.build.directory}/${project.build.finalName}/docs</outputDirectory>
            </configuration>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>
<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <warSourceDirectory>WebContent</warSourceDirectory>
        <failOnMissingWebXml>true</failOnMissingWebXml>
        <warName>mywar</warName>
        <warSourceExcludes>docs/myexample/**</warSourceExcludes>
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>war</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Assembly插件必须先运行,以便在war插件之前执行。Assembly插件将创建zip文件,并将其放置在war插件用于创建war文件的目录中(outputDirectory配置)。然后,我不得不将示例源排除在war文件中(warSourceExcludes配置)。我不确定这是否是最好的方法,但似乎效果很好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何提取添加到zip存档中的最后一个文件

如何将另一个测试源文件夹添加到Maven并将其编译到单独的文件夹中?

复制 CSV 文件的一整列并使用 shell 脚本将其添加到另一个文件

如何从一个.txt文件中提取一堆行并将其添加到另一个文件中?

使用Maven将资源文件夹下的文件添加到zip中

从文件读取行并将其添加到另一个SHELL

创建一个新项目并将其添加到我的邻居的列表中

按键创建一个新对象并将其添加到列表中

使用Tempfile在Rails中创建一个zip文件

使用bash脚本将XML文件的内容添加到另一个文件中

如何将所有Javascript文件的引用添加到一个文件中?

如何使用Spark RDD将一个文件的列添加到其他文件

如何创建一个函数,从一个 QTreeWidget 中删除一个项目并将其添加到另一个?

获取特定类型的文件并将其添加到现有的zip文件中

在 PHP 中创建一个 word 文件并将其附加到邮件中

如何将War文件添加到另一个Java Web应用程序依赖项?

Spring Boot:如何将另一个WAR文件添加到嵌入式tomcat?

递归地将文件添加到JList-仅添加最后一个文件夹中的文件

jQuery-如果一个键/值存在于另一个JSON文件中,则将其添加到一个JSON文件

如何使用FFMpeg将背景音乐添加到另一个音频文件中?

在JavaFX中创建一个自定义节点并将其添加到布局中

创建一个变量并将其添加到R中的循环内的数据帧中

创建一个新的导航并将其添加到SharePoint 2010中的左侧导航栏中

需要创建Java JAR文件并将其添加到Maven Dependency

将数据从一个文件添加到另一个文件

将子模块中的小程序添加到Maven中的WAR文件

使用git创建一个war文件

NPM:创建一个NPM包,将文件和文件夹添加到项目根目录

找不到Git命令。请创建一个别名或将其添加到您的PATH中