再将gradle由单一工程转化为父子工程的过程中,遇到了很多问题,一度陷入绝望之中,不过很多时候就是这样,在绝望中寻找希望,人生终将辉煌。
一、将gradle工程导入到IDEA时,选中build.gradle进入到下一步之后,不要勾选“Create separate module source set”,否则就会根据gradle配置自动创建子工程。
二、在IDEA中提交Git时,提交前右边栏的“Before Commit”要有意识的选择,勾选了就要知道会增加哪些操作,否则可能会引起很多诡异的问题,这里我一般是默认都不勾选。
三、用IDEA中的Git管理代码,有时会遇到“Add Unversioned files”的问题,这是因为不会使用IDEA,这时我们可以安装IDEA的“idea-gitignore”插件,有两种方式生成完善的.gitignore文件。
1、若没生成.gitignore文件,那么就选中工程右键,New -> .ignore file -> .gitignore file (Git),在弹出窗中依次搜索IDEA、Eclipse等,把工程相关的模块自动加入.gitignore文件中。
2、若已存在.gitignore文件,那么就选中.gitignore文件右键,选择“Add template”,在弹出窗中依次搜索IDEA、Eclipse等,把工程相关的模块自动加入.gitignore文件中。
四、因为是基于JSP视图的系统,所以保留了“src/main/webapp/WEB-INF/jsps/”这样的目录结构,但是一度用Spring Boot的启动类启动后找不到JSP视图,之后尝试用死办法把“WEB-INF/jsps/”目录放到“src/main/resources”的目录下,因为resources是默认的classpath,这样虽然能够找到JSP资源,但是并没有用JSP的视图解析器去解析,最后发现只要用gradle自带的bootRun启动就可以了,可能只有这样spring才会把webapp当成是默认的classpath,于是可以自动找到JSP资源后用JSP的视图解析器去解析。
五、在java程序启动时,classpath非常重要,它能决定是否可以找到资源,譬如以下三类classpath,你是否都注意到了。
1、直接右键“Run Application.mian()”启动;
2、用gradle bootRun启动;
3、用java.exe启动
六、在Windows系统中构建时,用如下指令会把webapp目录拷贝到目标目录下,但在Linux系统中进行构建时却不会拷贝。
exclude('**/*.webapp')
}
into "${rootProject.projectDir}/dist/${project.name}"
// 输出编译子工程时的绝对路径
println file('/testPath/').absolutePath
}