本文作为部署本地dotCMS 以便debug源码的记录
1、代码下载
git clone https://github.com/dotCMS/core
代码克隆的过程很慢,而且有可能中断,坚持住别慌
2、版本切换
因为我用的是3.7.1的版本,不是官网最新的5.x的版本,所以需要切换代码版本
git reset --hard 8d1e90ad869f3e4bba6dbd8a91f6cb8f5326d965
3、工程导入
将工程导入到 IDEA中,refresh下gradle的依赖,这个过程中有可能出现connection timeout连接超时的情况。这个时候不用管它,再刷新会继续下载依赖。
4、修改配置文件
项目结构如图所示
a) 本地解压一个最新的tomcat
我的路径是C:/dotCMS/apache-tomcat-8.0.47,这个路径后面多处会用到。
b)修改配置文件
src-conf/dotmarketing-config.properties
如下图添加一句将nas文件的位置固定到webapps下,否则tomcat的ROOT下的nas会每次都要重新更新一次。
将 dotcms-config-cluster.properties 文件中的
es.path.data=dotsecure/esdata
改为
es.path.data=C:/dotCMS/apache-tomcat-8.0.47/webapps/dotsecure/esdata
c)改了下 build.xml 项目构建文件
首先加了一句声明tomcat的路径
<!-- 本地tomcat路径,放在别的property之后就可以了 -->
<property name="local.tomcat.home" value="C:/dotCMS/apache-tomcat-8.0.47"/>
在<target name="war-file" description="Builds dotCMS as a war">这个任务最后加一句拷贝数据库配置信息的文件
<!-- copy conext.xml -->
<copy file="extra/tomcat/context.xml" tofile="${build.war}/${war.name}.war/META-INF/context.xml"/>
在 target name="deploy-war-jboss7" 前加入两个任务
<target name="remove-root">
<delete dir="${local.tomcat.home}/webapps/ROOT/"/>
<delete file="${local.tomcat.home}/webapps/ROOT.war"/>
</target>
<target name="move-war-idea-tomcat" depends="remove-root">
<copy file="build/war/dotcms_3.7.1.war" tofile="${local.tomcat.home}/webapps/ROOT.war"></copy>
</target>
d)更改了extra/tomcat/context.xml
将默认的h2数据库换成mysql的数据库
记得在tomcat下增加mysql的数据库驱动jar包,以及一个mail.jar
5、编译修改后的代码,并打包
右侧gradle中 clean -> (compile) -> build -> war
6、在IDEA中添加和配置本地tomcat
第一次跑tomcat的时候加入这个事件,放在最前面。后面就可以删了
将这个路径下的 /build/war/dotcms_3.7.1.war 添加到tomcat中
将日志信息导入进来,启动项目后可查看日志信息
启动项目,之后就可以debug代码了。如果源代码或者配置又改动需要重新发布的话,就需要重新执行第5步的内容,然后重启tomcat。