maven - JavaWeb
打包
1.清除原来的war包
选中maven项目,右键–>Run As–>maven clean
maven clean 执行的是maven原生命令:mvn clean
因为maven在打包时,如果已经存在一个包时,再次执行打包命令时,如果不把原来的war包删除,经常会导致包没有更新
出现如图表示成功
2.打包项目
命令:mvn -package
图中箭头就是war包所在的地址
完成!
打包遇到的问题
错误1:出现编码GBK的不可映射字符
原因:maven默认打包使用的是GBK,但是开发过程中使用的是utf-8
解决:在maven的编译插件中声明正确的字符集编码编码,在pom.xml中声明
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf8</encoding>
</configuration>
</plugin>
</plugins>
</build>
我自己遇到的问题:有些文件是gbk,有些是utf-8,统一修改成gbk后问题解决
错误2:显示“软件包 javax.servlet.http 不存在” 或者 “程序包 javax.servlet 不存在”
原因:由于缺少servlet-api.jar包
其实tomcat下有,在java build path已经加载过来,但还是报这个错误
解决办法:直接在pom.xml中添加
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
网上提供的另一种方法:在tomcat的lib目录下拷贝servlet-api.jar的包到“JDK\jre\lib\ext”目录下,重新编译就可以了