Gradle 从svn 中检出的父项目后处理配置【我】 及 Failed to parse configuration class异常
前提:
一个用gradle配置的 类似maven的聚合项目的项目,然后它在svn上就是一个父工程的目录。
检出方式:
在eclipse中,直接用svn资源库检出 父项目 的目录。
然后,在父项目下面的settings.gradle文件上右键,
Gradle——Refresh Gradle Project,
这样Eclipse包管理器中的单一parent目录项目就变成正常的多个子项目了。
--------------------
注意:
如果按照上面的方法不管用(eclipse报错,或者没有反应即项目没有变化),请如下操作:
处理方法1:
1.在eclipse中全局搜索 :connection.gradle.distribution,会找到项目下对应的 \.settings 目录下的 文件 org.eclipse.buildship.core.prefs
也可以直接到工作空间下的项目下的 .settings目录下去找。
2.修改 connection.gradle.distribution = 后面的值中的路径为 Eclipse环境中配置的本地gradle目录地址(这个地址可能是从svn中检出的项目的原配置,并不和本地gradle环境一致)
3.再重复执行:在父项目下面的settings.gradle文件上右键,Gradle——Refresh Gradle Project
处理方法2:
打开Eclipse的 Problems 窗口,找到其中的错误,全局搜上面的错误,或者搜索:
connection.gradle.distribution
同样会找到上面的文件,只要把报错的这行:
connection.gradle.distribution=GRADLE_DISTRIBUTION(LOCAL_INSTALLATION(E\:\\Utils\\gradle-4.6))
注释掉即可。
重新Refresh Gradle Project 后其会自动变成
connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
同时项目构建成功。
=================
gradle项目使用及启动:
用gradle构建的项目其实和maven一样,只是在 更新或修改 build.gradle 文件后,需要 在项目右键执行 Gradle——Refresh Gradle Project,是构建文件作用在项目上。其他可以和普通web项目一样操作,比如,启动,可以直接 add 到eclipse集成的Tomcat下来启动。
====================
更换Eclipse 2019版本后,从SVN检出项目,按照上面方法配置,启动时发现报错:
主要是说找不到某些类的 .class 文件,所以spring 无法实例化
错误如下:
org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [ xxximpl.class 找不到
发现报错的 bean都是某个接口项目下的实现类(说找不到对应的 .class 文件),而那个接口是以一个 jar 项目的形式单独存在的,在本项目的 build.gradle 配置文件中如下依赖的:
dependencies {
compile project(":crmCust-api")
在Eclipse的包管理器界面都是没问题的:
最下面也有这个依赖,但是部署到Tomcat中启动时就说找不到对应的 .class 文件。
想到是新Eclipse环境的问题,项目右键,build path,config bulidpath,Libraries 查看各项,未见明显异常错误。
然后百度一番,
再次项目右键,properties,选择左侧的 Deployment Assembly
在弹出的窗口中,发现我们依赖的的接口项目 crmCust-api 在窗口下部有报错叉号及提示错误的标记,
选中 上面表格中的 crmCust-api 然后,点右边的 Remove 移除,再点右边的add重新添加进来,故障排除。
启发:
怀疑项目构建问题,
除了在项目右键,build path,config bulidpath 查看异常外,
还可以项目右键,properties,选择左侧的 Deployment Assembly,查看右侧是否异常
===================================