Spring boot 在基于maven的Springboot应用程序中,如何在不包含应用程序中现有的主类的情况下单独运行命令行主类?
我面临着一种奇怪的情况。当我运行现有的主应用程序时,它在运行时还包括另一个命令行主类 我已经在pom.xml中创建了2个概要文件,并且还设置了mainClass标记。 1-单元测试 2-集成测试Spring boot 在基于maven的Springboot应用程序中,如何在不包含应用程序中现有的主类的情况下单独运行命令行主类?,spring-boot,maven,junit4,spring-boot-test,spring-boot-maven-plugin,Spring Boot,Maven,Junit4,Spring Boot Test,Spring Boot Maven Plugin,我面临着一种奇怪的情况。当我运行现有的主应用程序时,它在运行时还包括另一个命令行主类 我已经在pom.xml中创建了2个概要文件,并且还设置了mainClass标记。 1-单元测试 2-集成测试 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration&g
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>${commandLineMainClass}</mainClass>
</configuration>
</plugin>
org.springframework.boot
springbootmaven插件
${commandLineMainClass}
在集成测试中,我使用命令行运行程序创建了单独的主类,只需点击即可测试部署在另一台服务器上的应用程序
我有两个问题-
1-当我运行现有的主类应用程序时,它也会使用命令行主类启动。在未通过命令行手动运行之前,应将其排除在外
<project>
<parent>
<groupid>org.springframework.boot</groupid>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/>
</parent>
<properties>
<java.version>1.8</java.version>
<start-class>thisisCommandLineProp</start-class>
<environment>thisisCommandLineProp</environment>
</properties>
<profiles>
<profile>
<id>unittest</id>
<build>
<filename>${project.artifactId}</filename>
</build>
</profile>
<profile>
<id>integrationtest</id>
<build>
<filename>${project.artifactId}</filename>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupid>org.springframework.boot</groupid>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<configuration>
<workingDirectory>${project.basedir}\src\integration-test\</workingDirectory>
<mainClass>${project.basedir}\src\integration-test\${start-class}</mainClass>
<arguments>
<argument>
spring.config.location=${project.basedir}\src\main\resources\application-${environment}.properties</argument>
</arguments>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<project>
org.springframework.boot
spring启动程序父级
2.2.1.发布
1.8
这是常见的命令行属性
这是常见的命令行属性
单元测试
${project.artifactId}
集成测试
${project.artifactId}
maven surefire插件
真的
org.springframework.boot
springbootmaven插件
${project.basedir}\src\integration test\
${project.basedir}\src\integration test\${start class}
spring.config.location=${project.basedir}\src\main\resources\application-${environment}.properties
跑
**命令-**spring boot:run-Denvironment=dev-Dstart class=com.abc.xyz.Integrationtest-Pintegrationtest
org.springframework.boot
spring启动程序父级
2.2.1.发布
1.8
这是常见的命令行属性
这是常见的命令行属性
单元测试
${project.artifactId}
集成测试
${project.artifactId}
maven surefire插件
真的
org.springframework.boot
springbootmaven插件
${project.basedir}\src\integration test\
${project.basedir}\src\integration test\${start class}
spring.config.location=${project.basedir}\src\main\resources\application-${environment}.properties
跑
**Command-**spring boot:run-Denvironment=dev-Dstart class=com.abc.xyz.Integrationtest-Pintegrationtest您可以在
pom.xml
中添加完整的
部分来查看这两个配置文件的配置,以及如何运行不同用例的示例吗,请提供帮助。您是否可以在pom.xml
中添加完整的
部分,以查看这两个配置文件的配置以及如何运行不同用例的示例。我已经在下面的注释中添加了pom.xml代码部分,请提供帮助。我已经添加了pom.xml代码段,如果有任何输入错误,请忽略。我的要求是,命令行类应该独立工作,当我运行默认应用程序时,我的集成测试命令行类应该被忽略。当我使用命令行运行时,只有命令行类和现有的默认应用程序主类必须运行。我必须使用以下命令:命令行运行:命令-Spring Bug:Run-Deave= DeaveDistaby= COM.ABC.XYZ.IngultTest-Pintegrationtestplease考虑下次更新您原来的问题。有一个编辑按钮我添加了pom.xml代码段,如果有任何输入错误,请忽略。我的要求是,命令行类应该独立工作,当我运行默认应用程序时,我的集成测试命令行类应该被忽略。当我使用命令行运行时,只有命令行类和现有的默认应用程序主类必须运行。我必须使用以下命令:命令行运行:命令-Spring Bug:Run-Deave= DeaveDistaby= COM.ABC.XYZ.IngultTest-Pintegrationtestplease考虑下次更新您原来的问题。有一个编辑按钮