如何利用maven,在web环境下,将完整项目输出为一个war包;
本篇博可以和Maven六:项目打包(非web工程打成jar包;基于Eclipse)对比着看下。
目录
0.附带的一部分;(本身有问题,可以看下这个问题,仅做一个参考,和本篇博客关系并不是很大);
0.附带的一部分;(本身有问题,可以看下这个问题,仅做一个参考,和本篇博客关系并不是很大);
比如,以前想要使用JSTL(JSP标签库),需要下载JSTL的jar包,然后将这个jar包复制到工程的lib目录下,然后将jar包引入到工程中。但是在有了Maven后,这种“手动下载jar包,然后手动引用到工程中”的方式就成为了过去式,取而代之的只需要在pom.xml中增加响应的依赖就可以了。
Maven中央仓库的检索网站:https://search.maven.org/,并查询jstl;
然后,在index.jsp中使用jstl:
但是,实际启动工程后,发现出现了一下问题:(这是完全意料之外的情况……)
解决办法:将jstl的俩jar包添加进:lib目录下,并引入到当前项目中:
这个例子很坑爹,看看就行。
1.将web工程打成war包(本篇博客核心)
首先,在pom.xml中进行设置
<!--packaging代表输出的格式 ,,,,,如果没有设置的话,其默认是:【<packaging>jar</packaging>】 -->
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
</plugins>
</build>
然后,在Eclipse中新建一个执行命令,得到war包
最后,测试打好的war包是否OK
(注意,将Eclipse中的Tomcat关闭掉,防止端口占用冲突)
然后再去webapps目录下发现:生成了一个【maven-1.0.0.RELEASE】目录
然后在浏览器中就可以访问:
改善:通过<finalName>***</finalName>简化输出war包的文件名
上面的工程名字为:【maven-1.0.0.RELEASE】,太长了。如何自定义加压后的目录名?
然后,再次生成:
然后,将这个war包复制进Tomcat的webapp目录下,重启Tomcat:
即,通过【<finalName>maven-web</finalName>】可以简化,输出war包的文件名,进而简化在浏览器访问时的ContextPath上下文路径。