java with gradle 项目配置常见问题梳理
1.java.lang.UnsupportedClassVersionError: jdk & jre 版本需一致
2.中文编码处理: https://blog.csdn.net/chinassj/article/details/81662277
Editor-file encoding
Build,Execution,Deployment - CommandLineParameter : -encoding utf-8
.idea文件夹中的encodings.xml文件中的编码格式改为uft-8
Server > VM options 设置为 -Dfile.encoding=UTF-8
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
3.IDEA无法加载gradle:
3.1 检查gradle语法并重启IDEA
3.2 检查gradle路径: > gradle properties
注意检查以下项与实际是否一致:
新建工程为 DemoProject,路径为D:\projects\DemoProject 则——
rootDir: D:\projects\DemoProject
projectDir: D:\projects\DemoProject\app
buildDir:D:\projects\DemoProject\app\build
4. java.lang.ClassNotFoundException
4.1 gradle application插件默认的源码根目录是src/main/java路径
4.2 如果是单模块应用,src目录放在项目根目录下,则将build.gradle放在根目录下
4.3 如果是多模块应用,src目录放在模块目录下,则将build.gradle放在模块目录
4.4 单模块和多模块都可以通过sourceSets。main.java.srcDirs自定义源码目录,如 main.java.srcDirs = ['src/shit/java']
build.gradle:
sourceSets {
main.java.srcDirs = ['src/main/java']
}
4.5 IDEA配置与gradle配置是两回事,两套配置文件
5. gradle 加载流程
init.d/xxx.gradle
settings.gradle
build.gradle
有三个阶段:
settings.gradle初始化阶段(initialization phase)
build.gradle项目配置阶段(Configure phase)
任务执行阶段
6. can not resolve projectlombok.lombok:
删除缓存重启
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.18'
// 必须加,否则注解的类IDEA无法找到
annotationProcessor 'org.projectlombok:lombok:1.18.18'
}
7.${USER_HOME} init.gradle 全局仓库镜像代理
allprojects{
repositories {
def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public/'
def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/repository/jcenter/'
def ALIYUN_GOOGLE_URL = 'https://maven.aliyun.com/repository/google/'
def ALIYUN_GRADLE_PLUGIN_URL = 'https://maven.aliyun.com/repository/gradle-plugin/'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
if (url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
remove repo
}
if (url.startsWith('https://dl.google.com/dl/android/maven2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GOOGLE_URL."
remove repo
}
if (url.startsWith('https://plugins.gradle.org/m2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GRADLE_PLUGIN_URL."
remove repo
}
}
}
maven { url ALIYUN_REPOSITORY_URL }
maven { url ALIYUN_JCENTER_URL }
maven { url ALIYUN_GOOGLE_URL }
maven { url ALIYUN_GRADLE_PLUGIN_URL }
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

浙公网安备 33010602011771号