我尝试使用不同层(Web,业务,数据访问,公共)的子项目创建一个带gradle的Spring启动项目。
我按照gradle官方指南的指示创建多项目构建。
这两个子项目最初都是用Spring.io.
问题
我尝试在我的其他子项目dataAccess中使用子项目的User
类。导入在Intellij中运行良好。但是,当我运行gradlew:dataAccess:compileJava
时,任务失败,因为找不到User
:
任务:数据访问:compileJava失败。。。\dataAccess\src\main\java\ch\wprogLK\MyProject\backend\dataAccess\MyProjectDataApplication。java:23:错误:找不到符号用户u=new User();^符号:类用户位置:类MyProjectDataApplication)
公共项目在dataAccess项目之前编译。我猜这是一个gradle配置问题,dataAccess项目在编译时对公共项目一无所知(可能是类路径问题?)。我很高兴能得到任何帮助。谢谢
项目设置
代码
我的项目/构建。格拉德尔
plugins {
id 'org.springframework.boot' version '2.1.8.RELEASE'
id 'io.spring.dependency-management' version '1.0.8.RELEASE'
id 'java'
}
group = 'ch.wprogLK'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
allprojects {
apply plugin: 'java'
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
}
MyProject/settings.gradle
rootProject.name = 'MyProject'
include 'common'
include 'dataAccess'
MyProject/common/build。格拉德尔
plugins {
id 'org.springframework.boot'
id 'io.spring.dependency-management'
id 'java'
}
group = 'ch.wprogLK'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
}
MyProject/普通/settings.gradle
rootProject.name = 'common'
MyProject/common/src/main/java/ch/wprogLK/MyProject/backend/common/entities/User。JAVA
package ch.wprogLK.myProject.backend.common.entities;
public class User
{
private Long userId;
private String username;
}
MyProject/dataAccess/build。格拉德尔
plugins {
id 'org.springframework.boot'
id 'io.spring.dependency-management'
id 'java'
}
group = 'ch.wprogLK'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
compile project(":common")
}
MyProject/dataAccess/settings。格拉德尔
rootProject.name = 'dataAccess'
MyProject/dataAccess/src/main/java/ch/wprogLK/MyProject/backend/dataAccess/MyProjectDataApplication。JAVA
package ch.wprogLK.myProject.backend.dataAccess;
import ch.wprogLK.myProject.backend.common.entities.User;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MyProjectDataApplication
{
public static void main(String[] args)
{
SpringApplication.run(MyProjectDataApplication.class, args);
}
public MyProjectDataApplication()
{
User u = new User(); //This line is the problem when running gradle :dataAccess:javaCompile
}
}
缺少设置两个配置来表示公共
是一个库。所以添加以下配置和编译
,从项目的根运行
。
common build。格雷德尔
bootJar {
enabled = false
}
jar {
enabled = true
}
我尝试使用不同层(web、业务、dataAccess、common)的子项目创建一个带有gradle的spring boot项目。 我按照官方分级指南的指示创建多项目构建。 这两个子项目最初都是用Spring.io创建的。 问题 我尝试使用在其他子项目DataAccess中常见的子项目的类。import在Intellij中运行良好。但是,当我运行时,任务失败,因为找不到: 任务:DataAcces
我在TextBoxBinding.java中得到以下错误
我在我的类上收到三条错误消息,它说在、和上找不到符号。我该如何解决这个问题?我试图在对话框中打印出来,但这三个是唯一不起作用的。
我得到了这两个错误。错误:找不到或加载主类骰子生成项目错误:找不到符号 我的文件保存为Dice.java.我检查了,因为这是我最后一个程序的问题之一。至于符号错误,我不确定。 公共类骰子{ //掷骰子。 扫描仪键盘=新扫描仪(System.in); 这只是源代码的一部分。
当我尝试构建我的项目时,我遇到了这些错误,它似乎认为我有两个相同的库,但我不确定为什么: 这是我的build.gradle文件 这是我的顶级gradle构建文件: { } 我想这个错误发生在升级到Android Studio后,但我不记得了。我的Android Studio版本现在是3.2.1。我能够让这个项目以前建立。
在此处输入图像描述 我从字面上得到这个错误是我打开的所有项目,有谁能帮我修复这个?