我有一个具有结构的多模块项目:
app/
build.gradle
settings.gradle
app-web/
src/main/java/example/
Application.java
app-repository/
src/main/java/example/
CustomerRepository.java
Customer.java
src/test/java/example/
CustomerRepositoryTest与应用程序类:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}与库房
@Repository
public interface CustomerRepository extends JpaRepository<Customer, Long> {
}和储存库测试
@RunWith(SpringRunner.class)
@SpringBootTest
public class CustomerRepositoryTest {
@Autowired
private CustomerRepository repository;
@Test
public void shouldSave() {
// When
final Customer saved = repository.save(new Customer());
// Then
assertThat(saved.getID()).isNotNull();
}
}现在,当我运行这个测试时,我得到了一个错误:
无法找到@SpringBootConfiguration,您需要使用@ContextConfiguration或@SpringBootTest(classes=.)用你的测试
当存储库模块中有Application类时,不会出现这种情况,但我需要将它们分开。有什么办法能让这件事奏效呢?
如果它有助于我的Spring依赖关系,则如下所示:
compile("org.springframework.boot:spring-boot-starter-data-jpa")
compile("com.h2database:h2")
testCompile("org.springframework.boot:spring-boot-starter-test")使用插件org.springframework.boot:spring-boot-gradle-plugin:1.5.8.RELEASE
发布于 2017-11-07 02:17:19
看来包的层次结构问题。您必须在Gradle中包括子项目(app-web & app-repository)到resources部分。我的maven问题中也有同样的问题,并通过添加到参考资料部分来解决。我对gradle不在行,我找到了一个链接:resources
https://stackoverflow.com/questions/47092106
复制相似问题