Java 使用Intellij中的测试jar进行Spring引导
您好,我有一个spring引导应用程序,可以从命令行正常运行。但是,当我从ide(intellij)运行它时,它会在每个http请求上失败。我遇到的问题是,在ide中,一个测试jar(在maven中定义为测试)与我在应用程序中的hk2 jar冲突 我不能将hk2类从测试jar中排除,因为它有阴影 当然,在我的测试中也会发生这种情况。所以我的问题是如何保证spring boot只加载生产jar而不加载测试jar。我担心我的测试可能没有测试正确的二进制文件 让集成测试执行已编译的应用程序是一个解决方案,但是我希望在ide中运行它,而无需每次重新编译代码 测试jar是testcontainers postgres 1.1.5Java 使用Intellij中的测试jar进行Spring引导,java,maven,spring-boot,hk2,Java,Maven,Spring Boot,Hk2,您好,我有一个spring引导应用程序,可以从命令行正常运行。但是,当我从ide(intellij)运行它时,它会在每个http请求上失败。我遇到的问题是,在ide中,一个测试jar(在maven中定义为测试)与我在应用程序中的hk2 jar冲突 我不能将hk2类从测试jar中排除,因为它有阴影 当然,在我的测试中也会发生这种情况。所以我的问题是如何保证spring boot只加载生产jar而不加载测试jar。我担心我的测试可能没有测试正确的二进制文件 让集成测试执行已编译的应用程序是一个解决方
谢谢如果您愿意信任
testcontainers的hk2着色类
,那么您可以定义两个maven配置文件,一个用于生产,另一个用于测试,我称之为hk2test。production配置文件(默认激活)包括hk2,而hk2test包括testcontainers。它们是相互排斥的
定义2个maven配置文件
<profiles>
<profile>
<id>production</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<dependencies>
<dependency>
<groupId>org.glassfish.hk2</groupId>
<artifactId>hk2</artifactId>
</dependency>
</dependencies>
</profile>
<profile>
<id>unit test</id>
<activation>
<property>
<name>hk2test</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</profile>
</profiles>
$ mvn -Dhk2test test