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

Maven WAR文件不排除测试类

楚和悌
2023-03-14

我正试图用Maven从最后的WAR文件中排除测试类。通常,如果我的测试是在src/test/java中,那么默认情况下应该这样做,但在我的情况下却没有这样做。测试类在文件夹WEB-INF\test-classes\中编译,所以我在pom.xml中添加了以下插件

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>3.2.0</version>
    <configuration>
        <packagingExcludes>**/test-classes/*.class</packagingExcludes>
    </configuration>
 </plugin>

但是即使这样,我的测试类仍然包含在。war文件中,最后有没有人可以解决这个问题或者解释我缺少什么?谢谢

         <pluginManagement>
                <plugins>
                    <!-- fix clean issue where duplicated entries of pom are created-->
                    <!--https://bugs.eclipse.org/bugs/show_bug.cgi?id=405915-->
                    <plugin>
                        <artifactId>maven-clean-plugin</artifactId>
                        <version>3.0.0</version>
                        <configuration>
                          <filesets>
                            <fileset>
                              <directory>src/main/webapp/META-INF</directory>
                              <includes>
                                <include>**/pom.properties</include>
                                <include>**/pom.xml</include>
                              </includes>
                            </fileset>
                          </filesets>
                        </configuration>
                    </plugin>

                    <plugin>
                        <groupId>org.eclipse.m2e</groupId>
                        <artifactId>lifecycle-mapping</artifactId>
                        <version>1.0.0</version>
                        <configuration>
                            <lifecycleMappingMetadata>
                                <pluginExecutions>
                                    <pluginExecution>
                                        <pluginExecutionFilter>
                                            <groupId>org.jibx</groupId>
                                            <artifactId>jibx-maven-plugin</artifactId>
                                            <goals>
                                                <goal>bind</goal>
                                            </goals>
                                            <versionRange>[1.2.6,)</versionRange>
                                        </pluginExecutionFilter>
                                        <action>
                                            <execute>
                                                <runOnIncremental>true</runOnIncremental>
                                            </execute>
                                        </action>
                                    </pluginExecution>


                                    <pluginExecution>
                                        <pluginExecutionFilter>
                                            <groupId>org.apache.openjpa</groupId>
                                            <artifactId>openjpa-maven-plugin</artifactId>
                                            <goals>
                                                <goal>enhance</goal>
                                            </goals>
                                            <versionRange>[2.2.2,)</versionRange>
                                        </pluginExecutionFilter>
                                        <action>
                                            <execute>
                                                <runOnIncremental>true</runOnIncremental>
                                            </execute>
                                        </action>
                                    </pluginExecution>

                                    <pluginExecution>
                                        <pluginExecutionFilter>
                                            <groupId>org.apache.maven.plugins</groupId>
                                            <artifactId>maven-antrun-plugin</artifactId>
                                            <goals>
                                                <goal>run</goal>
                                            </goals>
                                            <versionRange>[1.8,)</versionRange>
                                        </pluginExecutionFilter>
                                        <action>
                                            <execute>
                                                <runOnIncremental>false</runOnIncremental>
                                            </execute>
                                        </action>
                                    </pluginExecution>
                                </pluginExecutions>
                                </lifecycleMappingMetadata>
                        </configuration>
                    </plugin>
                </plugins>
            </pluginManagement>

            <plugins>  

                <!-- toolchain plugin to use specific JDK 
                 <plugins>
                      <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-toolchains-plugin</artifactId>
                        <version>1.1</version>
                        <executions>
                          <execution>
                            <goals>
                              <goal>toolchain</goal>
                            </goals>
                          </execution>
                        </executions>
                        <configuration>
                          <toolchains>
                            <jdk>
                              <version>1.8</version>
                              <vendor>ibm</vendor>
                            </jdk>
                          </toolchains>
                        </configuration>
                      </plugin>
                    </plugins>
        -->

                  <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.6.1</version>
                    <configuration>
                      <source>1.6</source>
                      <target>1.6</target>
                  <!--     <forceJavacCompilerUse>true</forceJavacCompilerUse>-->
                    </configuration>
                  </plugin>


                <!-- OPENJPA -->
                <plugin>
                    <groupId>org.apache.openjpa</groupId>
                    <artifactId>openjpa-maven-plugin</artifactId>
                    <version>2.2.2</version>
                    <configuration>
                        <includes>com/dsv/express/persistence/domain/*.class</includes>
                        <enforcePropertyRestrictions>true</enforcePropertyRestrictions>
                        <persistenceXmlFile>${project.basedir}${persistenceXmlFile-Path}</persistenceXmlFile>
                    </configuration>
                    <executions>
                        <execution>
                            <id>enhancer</id>
                            <phase>process-classes</phase>
                            <goals>
                                <goal>enhance</goal>
                            </goals>
                        </execution>
                    </executions>
                    <dependencies>
                        <dependency>
                            <groupId>org.apache.openjpa</groupId>
                            <artifactId>openjpa</artifactId>
                            <version>2.2.2</version>
                        </dependency>
                    </dependencies>
                </plugin>


        </plugins>

共有1个答案

虞祯
2023-03-14

问题是我使用了mavenpackagegoal,其中没有包含集成测试。运行MVN安装解决了我的问题!谢谢

 类似资料:
  • 现在我希望someClass使用context1.xml,而不是context2.xml。有没有办法排除?问题是:我的所有测试(300个测试)都有一个基类。我希望它们都使用context1,这是一个替代原始上下文的模拟上下文。只有一个类应该使用原始上下文来测试它(如果基将没有它在其位置{},它将使用原始上下文)。

  • 我要从Thorntail搬到Quarkus。在我的测试中,我曾创建一个@deployment方法,在该方法中,我只放置测试所需的内容。特别是,我没有把一个类放在@Startup注释中(因为我不想测试它…)。当我移动到QUARKUS时,我抑制了de@deployment静态方法,然后当我启动测试时@Startup是。。。一开始,发生了很多不好的事情,阻止我测试我想要测试的东西(好吧,它崩溃了,因为它

  • 我想镜像两个文件夹,但排除某些文件类型(例如js文件)。我可以用 /XF选项来做到这一点。 我遇到的问题是,如果目标文件夹中有一个带有js文件的Foo文件夹,但源文件夹中没有Foo文件夹,那么下面的robocopy命令将删除目标端的Foo文件夹以及其中的js文件。 机器人复制。exe d:\Source d:\Destination/E/PURGE/XF*。js/COPYALL/FFT 我想要的是

  • 我正在尝试创建一个Jar用作Maven存储库 我已经构建了所有内容,所有类都准备好了。唯一的问题是gradlew./build包含了测试文件夹中的类和资源。我不希望这些作为jar的一部分,尤其是正在测试的资源文件。 因此,我的问题是,如何从jar构建任务中排除这些文件。我试过了 在我的身体里。格拉德尔:但那没用 我是Gradle和Maven的新手,所以任何洞察力都会有帮助。谢谢! 参考材料 bui

  • 我想从我的checkstyle报告中忽略一个特定的文件夹(名为generated-sources ),因为它们是生成的。 我正在使用 eclipse-cs 来显示我的违规行为。 我在xml中添加了suppressionfilter: 我的压抑.xml看起来像这样: 但它不起作用。有什么想法吗?

  • 我们有一个EAR项目,它组装一个WAR文件,并有一些JAR文件作为依赖项。EAR的POM.xml如下所示: 作为JAR包含在EAR中的包impl中有一些测试类。不幸的是,在组装EAR时,这些测试类与JAR捆绑在一起。除了facet之外,Maven应该包含测试类,当EAR被组装时,我怎样才能在JAR中排除这些测试类呢? Package-impl中的所有测试类都在src/test/java Sourc