maven插件官网:
https://maven.apache.org/plugins/index.html
1.JDK插件的使用
1 <build> 2 <plugins> 3 <plugin> 4 <groupId>org.apache.maven.plugins</groupId> 5 <artifactId>maven-compiler-plugin</artifactId> 6 <version>3.6.1</version> 7 <configuration> 8 <source>1.8</source> 9 <target>1.8</target> 10 <encoding>UTF-8</encoding> 11 </configuration> 12 </plugin> 13 </plugins> 14 </build>
注意:修改JDK版本后,项目可能会报错,此时需要更新maven项目。
2.配置打包项目源码包的插件
1 <plugin> 2 <groupId>org.apache.maven.plugins</groupId> 3 <artifactId>maven-source-plugin</artifactId> 4 <version>2.2.1</version> 5 <!-- 完成绑定.执行完打包后执行 --> 6 <executions> 7 <execution> 8 <goals> 9 <goal>jar-no-fork</goal> 10 </goals> 11 <phase>verify</phase> 12 </execution> 13 </executions> 14 </plugin>
注意:需要更新项目。执行maven install,在仓库中,即可查看到该项目的源码。如图:
3.tomcat7插件
1 <!-- 3.tomcat7插件 --> 2 <plugin> 3 <groupId>org.apache.tomcat.maven</groupId> 4 <artifactId>tomcat7-maven-plugin</artifactId> 5 <version>2.2</version> 6 <configuration> 7 <port>8080</port> 8 <server>tomcat7</server> 9 </configuration> 10 </plugin>
说明:
port:服务器端口号
server:服务器名称
运行示例:
在webapp下创建一个jsp,jsp头部报错,需要在pom.xml中引入servert的依赖,如:
1 <!-- 依赖servlet的api --> 2 <!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api --> 3 <dependency> 4 <groupId>javax.servlet</groupId> 5 <artifactId>servlet-api</artifactId> 6 <version>2.5</version> 7 <!-- privided依赖范围,编译时有效,但是运行发布的时候是无效的。 --> 8 <scope>provided</scope> 9 </dependency>
运行:右键项目→Run As→Maven build...→输入tomcat7:run
服务器启动:
在浏览器地址栏中输入:http://localhost:8080/sm1234-web/hello.jsp
若不加入<scope>provided</scope>,会发现如下错误:
错误:
java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/jasper/servlet/JasperLoader) previously initiated loading for a different type with name "javax/servlet/http/HttpServletRequest"
原因分析:当项目加载servlet-api时,整个环境中还存在另外一个servlet-api。该问题在实际开发中也会经常遇到。
结论:servlet-api只需要在编译时使用,而运行时无需使用。修改后,查看运行结果: