gpt4 book ai didi

java - Maven exec 无法识别 src/test 中的我的应用程序

转载 作者:行者123 更新时间:2023-12-02 01:23:27 26 4
gpt4 key购买 nike

我正在尝试为我的 Spring Boot 应用程序之一运行 mvn exec,但它给了我一个类加载器异常。

我的 main 中有一个名为 App.java 的应用程序,它运行在 28433 端口上。我在 src/test 中还有一个名为 MockServerApp.java 的应用程序。

我正在尝试运行 mvn exec 来执行它们。当我在主应用程序上执行 mvn exec 时,它会工作并启动。当我在 MockServerApp 上执行此操作时,它会导致类加载器异常。

这是我的 POM

     <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>default-cli</id>
<configuration>
<mainClass>com.nulogix.billing.App</mainClass>
</configuration>
</execution>
<execution>
<id>second-cli</id>
<configuration>
<mainClass>com.nulogix.billing.mockserver.MockServerApp</mainClass>
</configuration>
</execution>
</executions>
</plugin>

这是我收到的错误:

java.lang.ClassNotFoundException: com.nulogix.billing.mockserver.MockServerApp
at java.net.URLClassLoader.findClass (URLClassLoader.java:436)
at java.lang.ClassLoader.loadClass (ClassLoader.java:588)
at java.lang.ClassLoader.loadClass (ClassLoader.java:521)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:270)
at java.lang.Thread.run (Thread.java:835)

如何解决这个问题?

编辑:我尝试使用 spring-boot-maven-plugin,因为我将使用 MockAppServer 进行集成测试,并尝试在预集成生命周期中启动这两个插件。

<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.nulogix.billing.App</mainClass>

</configuration>
<executions>
<execution>
<id>pre-integration-test</id>
<goals>
<goal>start</goal>
</goals>

</execution>
<execution>
<id>pre-integration-test2</id>
<goals>
<goal>start</goal>
</goals>
<configuration>
<mainClass>com.nulogix.billing.mockserver.MockServerApp</mainClass>
</configuration>

</execution>
<execution>
<id>post-integration-test</id>
<goals>

<goal>stop</goal>
</goals>
<configuration>
<mainClass>com.nulogix.billing.App</mainClass>
</configuration>

</execution>
<execution>
<id>post-integration-test2</id>
<goals>

<goal>stop</goal>
</goals>
<configuration>
<mainClass>com.nulogix.billing.mockserver.MockServerApp</mainClass>
</configuration>

</execution>
</executions>

</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.18.1</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>

仍然给我 classNotFoundException。

最佳答案

您可以使用以下注释来标记 MockServerApp。您可以简单地从 Maven 运行 junit,并让 Spring 管理测试上下文的创建,而不是尝试从 Maven 运行 MockServerApp。

@RunWith(SpringRunner.class)
@SpringBootTest

您可以在spring boot testing查看更多文档

关于java - Maven exec 无法识别 src/test 中的我的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57602421/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com