菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
386
0

Gradle 从svn 中检出的父项目后处理配置【我】 及 Failed to parse configuration class异常

原创
05/13 14:22
阅读数 8888

 

前提:

一个用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,查看右侧是否异常

 ===================================

 

发表评论

0/200
386 点赞
0 评论
收藏