maven插件的使用

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只需要在编译时使用,而运行时无需使用。修改后,查看运行结果:

原文地址:https://www.cnblogs.com/116970u/p/10135112.html