IDEA引入Gradle工程小记

1.首先IDEA要在该工程Settings中配置本地安装的Gradle,配好其home目录,注意目录到根目录即可,不要到bin一级,否则提示错误,无法使用:

2.配置好后会自动侦测Gradle项目,点击右下角自动引入依赖

3.有些依赖无法下载,右上角有提示选项,try again重试,也可点击查看详细日志,基本上是网络不通,因为缓存(cached xxx.jar)不到国外库的相应jar包导致:

4.Gradle默认配置在C盘下该用户下的.gradle目录,默认jar存放地址为C:\Users\(用户名)\.gradle\caches\modules-2\files-2.1,可参考博文https://blog.csdn.net/chwshuang/article/details/52261940手动下载添加到Gradle已生成的对应目录。

5.Gradle入门博客:https://www.jianshu.com/p/001abe1d8e95

6.Gradle仓库配置:.gradle文件夹下添加脚本:

allprojects{
    repositories {
        def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
        all { ArtifactRepository repo ->
            if(repo instanceof MavenArtifactRepository){
                def url = repo.url.toString()
                if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
                    remove repo
                }
            }
        }
        maven {
            url REPOSITORY_URL
        }
    }
}

命名为init.gradle,此为全局远程仓库配置。

每个项目的build.gradle文件中,可配置多个maven仓库:

    repositories {
        mavenCentral()
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
        maven { url 'https://repo.spring.io/libs-snapshot' }
    }

这样可以分别从这几个仓库尝试下载jar包,当然

io.spring.gradle:spring-build-conventions:0.0.15.RELEASE

这个包无论如何也找不到!

 

本地仓库可配置环境变量GRADLE_USER_HOME,指定一个本地库位置,下载的jar包会存储在这里.

参考博文:https://blog.csdn.net/x_iya/article/details/75040806

https://www.cnblogs.com/dwb91/p/6523541.html

这里支持阿里仓库按artifactId,groupId查询:http://maven.aliyun.com/mvn/search

巨坑提示

IDEA默认全局Gradle配置中,有一个巨坑选项:Offline Work--也就是离线工作!!这样是无法引入任何在线依赖的!!只能引入Gradle默认库中已有Jar,非常之坑爹!需要把这个默认勾选掉

这样Gradle才会默认下载依赖。注意IDEA另外坑比的一点是Gradle支持没有像Maven支持一样可以手动reimport,只能靠它的自动引入,或勾选掉上面图片中的Use auto-import选项后右下角自动出现的手动引入/自动引入选项!

关于IDEA引入项目

1.IDEA 2017.2版的另外一个头痛Bug就是大多数时候引入Maven依赖会无限期进度条等待,无法引入任何在线依赖。解决办法只能是关闭所有项目,再重新打开项目,Mavn-reimport

2.IDEA在引入模块化项目时,需要在Project Structures中调整每次都是要选中父项目,在父项目下引入子项目模块

引入正常的模块化项目是在父项目下列出所有子项目模块,而不是与父项目并列!

项目间相互依赖,需要在dependencies中引入项目依赖,也可在出错地方Alt+Enter,自动智能引入。

如果层次不对,需要在关闭所有项目后的小窗口删除这个项目,从头重新引入,Gradle/Maven工程。

3.Dubbo项目,无法引入相关Dubbo/Spring依赖jar,Spring配置文件中的Dubbo Schema命名空间就会报错

4.将模块化工程整体编译防止报错,每个工程所需log4j.properties需要放在自己工程的resources目录下放在父工程不行! Web工程中引入Web模块Tomcat,重新编译后也需要整个Web模块删除,在工程中删除Artifacts,重新添加Artifacts(引入module时,下面第二个选项),重新添加Web模块Tomcat,在Web模块中添加本工程Artifacts

 

posted @ 2018-09-13 08:55  free_wings  阅读(28755)  评论(0编辑  收藏  举报