【问题标题】:How to unpack a war file copied from local directory using Maven Resources Plugin?如何使用 Maven 资源插件解压缩从本地目录复制的战争文件?
【发布时间】:2016-07-05 10:44:23
【问题描述】:

我正在尝试将 CAS 服务器与 Spring 应用程序集成。 (我已经在本地配置了 CAS,在我的 Tomcat 服务器中并且它工作正常)。使用 Maven 资源插件,我将 cas.war 文件复制到我的 Web 应用程序的目标文件夹中。但是我需要解压那个cas.war 文件以覆盖我修改过的一些文件。

如何解压缩我使用 Maven 资源插件复制的 war 文件?

这是我的 pom.xml

<plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <warName>cas</warName>
                <webResources>
                    <resource>
                        <directory>${basedir}/src/main/webapp/WEB-INF</directory>
                        <filtering>true</filtering>
                        <targetPath>WEB-INF</targetPath>
                        <includes>
                            <include>**/web.xml</include>
                        </includes>
                    </resource>
                </webResources>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>${maven-jetty-plugin.version}</version>
            <configuration>
                <webApp>
                    <contextPath>/cas</contextPath>
                </webApp>
            </configuration>
        </plugin>

        <!--Copy plugin-->
        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>3.0.1</version>
            <executions>

                <!--copy cas.war file-->
                <execution>
                    <id>copy-initial-cas.war</id>
                    <phase>install</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <overwrite>true</overwrite>
                        <outputDirectory>${basedir}/target/cas</outputDirectory>
                        <resources>
                            <resource>
                                <directory>${CAS.LOCATION}/target</directory>
                                <includes>
                                    <include>cas.war</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>


                <!--copying deployerConfigContext file-->
                <execution>
                    <id>copy-deployerConfigContext</id>
                    <phase>install</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <overwrite>true</overwrite>
                        <outputDirectory>${basedir}/target/cas/WEB-INF</outputDirectory>
                        <resources>
                            <resource>
                                <directory>${basedir}/resources</directory>
                                <includes>
                                    <include>deployerConfigContext.xml</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>


                <!--copying web.xml file-->
                <execution>
                    <id>copy-web.xml</id>
                    <phase>install</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <overwrite>true</overwrite>
                        <outputDirectory>${basedir}/target/cas/WEB-INF</outputDirectory>
                        <resources>
                            <resource>
                                <directory>${basedir}/resources</directory>
                                <includes>
                                    <include>web.xml</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>


                <!--copying casdatabase.properties file-->
                <execution>
                    <id>copy-casdatabase.properties</id>
                    <phase>install</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${basedir}/target/cas/WEB-INF</outputDirectory>
                        <resources>
                            <resource>
                                <directory>${basedir}/resources</directory>
                                <includes>
                                    <include>casdatabase.properties</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>

        <!--unpacking plugin-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.6</version>
            <executions>
                <execution>
                    <id>unzip-war</id>
                    <phase>install</phase>
                    <configuration>
                        <tasks>
                            <echo message="unpack cas.war" />
                            <unzip src="${basedir}/target/cas/cas.war" dest="${basedir}/target/cas" overwrite="true"/>
                        </tasks>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>

【问题讨论】:

  • 可能不需要解压文件。看tomcat.apache.org/maven-plugin-2.2/tomcat7-maven-plugin/redeploy-mojo.html
  • @Kennet 谢谢,但这与重新部署无关。我需要通过获取本地安装的 cas.war 文件的副本并根据应用程序修改一些文件并重建它来对应用程序进行 CAS 化。如果你可以看看我的 pom.xml 请。

标签: maven tomcat cas


【解决方案1】:

如果你想在战争中覆盖资源,你应该使用 maven 覆盖方法。

【讨论】:

  • 是的,我希望将我在tomcat中配置的原始cas.war文件复制到我在IntelliJ IDEA中开发的webapp的目标文件夹中。然后还需要解压它并复制和替换解压后的战争中的一些资源文件。可以通过overlay插件来实现吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-28
  • 2012-03-29
  • 2015-02-18
  • 1970-01-01
  • 2011-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多