1.2 Maven下开发
如果使用Maven管理jar包依赖,只需要引入如下dependency:
- <dependency>
- <groupId>com.jfinal</groupId>
- <artifactId>jfinal</artifactId>
- <version>3.4</version>
- </dependency>
- <dependency>
- <groupId>com.jfinal</groupId>
- <artifactId>jetty-server</artifactId>
- <version>8.1.8</version>
- <scope>provided</scope>
- </dependency>
注意,jetty-server依赖的scope为provided,仅用于开发阶段,部署时不需要,打包时也会自动跳过。
Maven下启动JFinal与前面介绍的非maven方式基本相同,唯一的区别是在创建Java Application启动项时,在Arguments标签中的Program arguments中输入:src/main/webapp 80 / 5参数用来指定web项目的根目录。如下示例代码是main方法启动方式:
- public static void main(String[] args) {
- // eclipse 下的启动方式
- JFinal.start("src/main/webapp", 80, "/", 5);
- // IDEA 下的启动方式
- // JFinal.start("src/main/webapp", 80, "/");
- }
常见问题解决:
1:出现 NoClassDefFoundError 异常
原因之一是 maven 本地库下载的 jar 文件数据有错误。看一下异常中是哪个类文件抛出的 NoClassDefFoundError,在本地 maven 库中删掉其目录,让 maven 从中心库中重新下载一次即可,例如使用的 jfinal-3.4 版本,就删掉 maven repository 中的 /com/jfinal/jfinal 目录下面的 3.4 子目录。
原因之二是对同一个 jar 包,引入了多个不同版本,删掉其中多余的即可
以上问题本质上与 jfinal 无关,纯属 Java 开发时碰到的基础性异常