前提:
一個用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,查看右側是否異常
===================================