当前位置: 首页 > 知识库问答 >
问题:

爆炸战争的maven覆盖:从爆炸战争中排除物品

佴涵蓄
2023-03-14

我一直在努力研究如何使用maven overlay插件将项目排除在爆炸战争之外。

我有以下内容:

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <executions>
        <execution>
            <id>build-directory-tree</id>
            <phase>process-resources</phase>
            <goals>
                <goal>exploded</goal>
            </goals>
            <configuration>
                <overlays>
                    <overlay>
                        <groupId>com.mycompany.Online</groupId>
                        <artifactId>MyCompanyOnline</artifactId>
                        <excludes>
                            <exclude>WEB-INF/web.xml,WEB-INF/applicationContext.xml,WEB-INF/wro/**,WEB-INF/wro/wro-mapping.properties</exclude>
                        </excludes>
                    </overlay>
                </overlays>
            </configuration>
        </execution>
    </executions>
</plugin>

xml和applicationcontext.xml可以很好地排除,但它们位于:${basedir}/src/main/webapp/web-inf/下

无论我尝试什么,这些文件是静止的,覆盖,尽管排除。

共有1个答案

慕乐池
2023-03-14

经过多年的挖掘和尝试不同的配置,我终于找到了什么工作。

在覆盖父级的子级上使用mvn clean Install-x,我确认文件正在复制,因为有一个“+”符号,而不是“-”。实际上,我虽然被排除的文件是因为exclude块而被排除的,因为子文件在相同位置有一个同名文件。

最后,我在plugin.xml中查找maven-war-plugin-2.2.jar,并找到了这个参数:dependentWarExcludes,根据xml它是:

 <deprecated>Use <overlay><excludes>
 instead</deprecated>
<plugin>
    <artifactId>maven-war-plugin</artifactId>

        <configuration>
            <overlays>
                <overlay>
                    <groupId>com.mycompany.Online</groupId>
                    <artifactId>MyCompanyOnline</artifactId>
                </overlay>
            </overlays>
            <dependentWarExcludes>WEB-INF/web.xml,WEB-INF/applicationContext.xml,WEB-INF/wro/</dependentWarExcludes>
        </configuration>

        <executions>
            <execution>
                <id>build-directory-tree</id>
                <phase>process-resources</phase>
                <goals>
                    <goal>exploded</goal>
                </goals>
            </execution>
        </executions>
</plugin>
 类似资料:
  • 我们在IntelliJ(Ultimate 14.1.14)中有一个java web项目,我们希望从爆炸战争中排除某个文件夹。

  • 我有一个Java web应用程序,我正在IntelliJ中开发,并使用Apache Tomcat进行部署。我定义了一些在团队中每个人之间共享的运行配置。这些运行配置定义为将分解的war工件部署到本地tomcat中。其他团队成员能够很好地部署和运行,但我遇到以下错误: IntelliJ似乎不想创建分解/项目。war目录。如果我手动创建这些目录,我不会收到该错误消息,但WAR内容都不会放入该目录。 我

  • 对于我当前的项目,我创建了独立的基于Spingboot的应用程序。目前,我正在WildFly standalone deployment文件夹中以war文件的形式部署应用程序。为了在war文件中进行任何更改(比如更新JNDI名称),我需要将war作为zip打开,解压缩并更改应用程序。属性文件,然后将其打包为war。 有什么方法可以让我把爆炸的战争保存在部署文件夹中吗?

  • 问题内容: 我想从包含单词列表的DataFrame转换为每个单词都在其自己行中的DataFrame。 如何在DataFrame中的列上爆炸? 这是我尝试的一些示例,您可以在其中取消注释每个代码行并获取以下注释中列出的错误。我在带有Spark 1.6.1的Python 2.7中使用PySpark。 请指教 问题答案: 和是SQL函数。两者都在SQL上运行。将Java正则表达式作为第二个参数。如果要在

  • 我试图在IntelliJ Idea中调试一个web应用程序,该应用程序以爆炸战争的形式部署到本地Tomcat6服务器上。 在应用程序开始时,我得到,尽管分解的WAR目录包含这些类(在其子目录中)。 当我在IntelliJ Idea中启动web应用程序(按按钮)并查看Tomcat webapp目录()时,我没有看到一个目录包含我的爆炸战争。 因此,我认为未将爆炸的WAR复制到相应的Tomcat目录中

  • 我尝试使用Spring Boot 2.0.2从战争转移到罐子,并且在使用故障安全进行maven测试时遇到了问题。 我看到两种错误: > < li> < code > Java . lang . noclassdeffounderror ,其中列出了我的一个bean类 当我在 IntelliJ 中运行这些测试时,一切正常,但它们在 maven 中失败。与此同时,当我回到建立战争而不是罐子时,一切都有