这个问题在 Stack Overflow 中得到了广泛的评论,但似乎没有一个解决方案适合我的项目。
我有两个独立的项目(MainApplication
和LibraryApplication
),然后我想导出 LibraryApplication ,并将其导入主项目(这是一种简化的方法来保持简单)。
我将 library.jar 导出到主项目中的 libs/ 文件夹,然后将编译文件指令添加到 build.gradle。
jar 确实已添加到类路径中,我可以从 MainApplication 中看到这些类。所以我添加了@ComponentScan
, @EnableJpaRepositories
,@EntityScan
等,但这些注释似乎都不起作用,因为在我运行MainApplication
项目时只创建了 MAIN_ENTITY 。
我尝试了许多在其他相关问题中评论的解决方案,但没有一个对我有用:
- 我搬到
MainApplication.java
了更高的包装级别,但没有结果。 - 我创建了一个
AppConfig.java
inLibraryApplication
项目,并在没有结果的情况下配置了 、和@ComponentScan("com.app")
注入了该类。@EntityScan("com.app")
@EnableJpaRepositories("com.app")
MainApplication
- 我
.*
从我的注释中删除了,所以@ComponentScan("com.app.*")
我@ComponentScan("com.app")
没有结果。
我怎样才能达到预期的效果?
我创建了两个 github 存储库,因此您可以检查/下载代码。
提前致谢!
更新
共享每个项目的 build.gradle 配置:
图书馆用
buildscript {
ext {
springBootVersion = '2.0.4.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group = 'com.app'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
bootRepackage {
classifier = 'exec'
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-web')
runtime('com.h2database:h2')
compileOnly('org.projectlombok:lombok')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
对于主要
buildscript {
ext {
springBootVersion = '2.0.4.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group = 'com.app'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile files('libs/library.jar')
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-web')
runtime('com.h2database:h2')
compileOnly('org.projectlombok:lombok')
testCompile('org.springframework.boot:spring-boot-starter-test')
}