You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
2.8 KiB
57 lines
2.8 KiB
|
|
|
|
1、 public void configEngine(Engine me) 方法中添加如下两行代码
|
|
me.setBaseTemplatePath("webapp");
|
|
me.setToClassPathSourceFactory();
|
|
注意:上面两行配置代码要放在最前面,因为 addSharedFunction(...)
|
|
这类配置对上面配置有依赖关系
|
|
|
|
|
|
当你的 webapp 资源目录本来就放在 src/main/resources 之下时,需要 "去掉" pom.xml 中的如下配置:
|
|
<resource>
|
|
<directory>src/main/webapp</directory>
|
|
<targetPath>webapp</targetPath>
|
|
</resource>
|
|
上述配置将 src/main/webapp 目录整体复制到 target/classes 目录之下,好让其打到 jar 包之中去
|
|
|
|
|
|
所以,如果项目确定当成 fatjar 来开发的话,建议将 src/main/webapp 整体挪到
|
|
src/main/resources 之下。这样就从开发到打包都不用做上述这些配置与额外动作,避免了出错的可能
|
|
|
|
有部分同学习惯于使用 static 代替 webapp,将上述涉及 webapp 的地方改成 static 即可
|
|
|
|
2、在 undertow.txt 配置文件中添加如下配置:
|
|
undertow.resourcePath=src/main/webapp, classpath:webapp
|
|
|
|
3、将本文件夹下的 pom.xml 替换掉项目中原有的 pom.xml 文件
|
|
|
|
这两个文件的差别在于前者打 fatjar 包用到的是 maven-shade-plugin 这个插件
|
|
而后者用到的是 maven-assembly-plugin 插件
|
|
|
|
4、 打包运行
|
|
mvn clean package
|
|
java -jar jfinal-club.jar
|
|
|
|
5、 隐藏功能
|
|
在打好的 jar 包的目录中添加 config 目录并添加配置文件可以被项目加载,注意,这里的
|
|
配置文件名与 jar 包中的配置文件名不能相同,可以参考 JFinalClubConfig 中的用法:
|
|
PropKit.useFirstFound("jfinal-club-config-pro.txt", "jfinal-club-config-dev.txt");
|
|
也就是说在开发的时候使用 dev 配置,在生产环境手动创建一个 pro 配置,由于该配置文件
|
|
在 jar 包中不存在,所以会被加载
|
|
|
|
在打好的 jar 包目录中添加将项目中的 webapp 复制过来,便于对外部 css、js、html 等资源
|
|
进行修改,更重要的是支持有文件上传功能的 web 项目
|
|
|
|
以上两个隐藏功能,需要在项目启动之前添加好目录与文件。简单来说这两个目录不存在时
|
|
使用 jar 包中的资源,否则就使用它。注意 config 目录中与 jar 包中的同名配置不会被加载
|
|
|
|
6、退出程序
|
|
如果启动时没带与字符 ‘&’ 结尾,则 Ctrl + C 即可退出否则使用下面的方法:
|
|
找到程序 pid: ps aux | grep java
|
|
杀掉进程: kill pid
|
|
|
|
注意使用 kill -9 pid 杀进程时,JFinalConfig.onStop() 不会被回调
|
|
可以参考 "非 fatjar" 项目的运行、停止脚本来写一个用于 fatjar 的脚本
|
|
|
|
小结:以上配置并不是仅仅适用于打包部署,开发阶段也使用这些配置,不用改来改去
|
|
|
|
|