JavaEE-add-maven
java项目添加maven框架
右键项目->Add Frameworks Support->[✔]maven
会自动整理项目结构修改
pom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.surelive.api</groupId>
<artifactId>ApiServer</artifactId>
<version>1.0-SNAPSHOT</version>
<!--设置打包格式-->
<packaging>war</packaging>
<properties>
<!--设置File encoding,没设置默认GBK会提示错误-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!--设置java编译版本-->
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
</properties>
<!-- 配置maven地址 -->
<distributionManagement>
<repository>
<!--这里的id要和maven里的的settings.xml的id一致-->
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://112.74.51.136:14002/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://112.74.51.136:14002/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
</project>添加maven解决依赖,可以解压jar查看具体版本(有的没有,可以上传到nexus仓库)
注意:编译不报错,不代表maven依赖正确
在
APP\src\main\webapp\WEB-INF\web.xml
添加web.xml
,里面有启动顺序移动配置文件conf复制到
APP\src\main\resources
代码如果采用绝对路径引用配置文件,去掉
CONFIG_PATH = "/mybatis-config.xml";
里面的/
会读取默认的APP\src\main\resources
目录下的配置文件注意:win10下注意tomcat的路径不能含空格等特殊符号,例如
Program Files
等,错误显示为某某文件找不到
常见问题
现象
1
2[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[ERROR] /D:/xuan/workspace/ApiServer/src/main/java/com/xx/api/server/timer/BaseTimerTask.java:[25,77] 编码GBK的不 可映射字符解决:在pom.xml添加
1
2
3
4
5
6
7<project ...>
<properties>
<!--设置File encoding,没设置默认GBK会提示错误-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
</project>[ERROR] /.../SysData.java:[12,81] -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)
解决:在pom.xml添加
1
2
3
4
5
6
7
8<project ...>
<properties>
<!--设置java编译版本-->
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
</properties>
</project>NoClassDefFoundError: redis/clients/jedis/JedisCommands
分析:编译打包时并没有任何错误,因为其他包里面有jedis的这个子包,所以编译通过了,但是运行时却找不到相应的版本所以导致该错
解决:添加相应的
jedis
依赖SchedulerException: SchedulerPlugin class 'org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin' could not be instantiated.
分析:因为使用声明式的不能直接分析出依赖问题
解决:找到
XMLSchedulingDataProcessorPlugin
该class,复制该类的所有import
到项目里面的一个随便的java文件,查看是否找不到包(有红线),然后添加缺的包的依赖
知识点
NoClassDefFoundError
一般是指没有jar