Maven插件和细节

1、父工程统一版本号

 1 <!-- 集中定义依赖版本号 -->
 2     <properties>
 3         <junit.version>4.12</junit.version>
 4         <spring.version>4.1.3.RELEASE</spring.version>
 5     </properties>
 6 
 7 <!-- 只定义依赖的版本,并不实际依赖 -->
 8     <dependencyManagement>
 9         <dependencies>
10             <!-- 单元测试 -->
11             <dependency>
12                 <groupId>junit</groupId>
13                 <artifactId>junit</artifactId>
14                 <version>${junit.version}</version>
15                 <scope>test</scope>
16             </dependency>
17             <!-- Spring -->
18             <dependency>
19                 <groupId>org.springframework</groupId>
20                 <artifactId>spring-context</artifactId>
21                 <version>${spring.version}</version>
22             </dependency>
23             <dependency>
24                 <groupId>org.springframework</groupId>
25                 <artifactId>spring-beans</artifactId>
26                 <version>${spring.version}</version>
27             </dependency>
28             <dependency>
29                 <groupId>org.springframework</groupId>
30                 <artifactId>spring-webmvc</artifactId>
31                 <version>${spring.version}</version>
32             </dependency>
33             <dependency>
34                 <groupId>org.springframework</groupId>
35                 <artifactId>spring-test</artifactId>
36                 <version>${spring.version}</version>
37                 <scope>provided</scope>
38             </dependency>
39             <dependency>
40                 <groupId>org.springframework</groupId>
41                 <artifactId>spring-jdbc</artifactId>
42                 <version>${spring.version}</version>
43             </dependency>
44             <dependency>
45                 <groupId>org.springframework</groupId>
46                 <artifactId>spring-aspects</artifactId>
47                 <version>${spring.version}</version>
48             </dependency>
49         </dependencies>
50     </dependencyManagement>

指定插件版本和使用

 1 父工程POM
 2 <pluginManagement>  加上这个标签表示只指定版本,子工程还需要指定,只不过不需要版本
 3     <plugins>
 4         <!-- 配置Tomcat插件 -->
 5         <plugin>
 6             <groupId>org.apache.tomcat.maven</groupId>
 7             <artifactId>tomcat7-maven-plugin</artifactId>
 8             <version>2.2</version>
 9         </plugin>
10     </plugins>
11 </pluginManagement>
12 
13 子工程
14 <!-- 添加tomcat插件 -->
15     <build>
16         <plugins>
17             <plugin>
18                 <groupId>org.apache.tomcat.maven</groupId>
19                 <artifactId>tomcat7-maven-plugin</artifactId>
20                 <configuration>
21                     <port>8080</port>
22                     <path>/</path>
23                 </configuration>
24             </plugin>
25         </plugins>
26     </build>

2、指定编译环境-JDK版本(1.8为例)

 1 <build>
 2         <plugins>
 3             <plugin>
 4                 <groupId>org.apache.maven.plugins</groupId>
 5                 <artifactId>maven-compiler-plugin</artifactId>
 6                 <version>3.7.0</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>

3、src/main/java下的文件如果打jar包,默认只会编译*.java的文件,忽略其他类型文件

例如:mybatis的mapping映射文件不会打包,则报错

解决:

 1 <!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 -->
 2     <build>
 3         <resources>
 4             <resource>
 5                 <directory>src/main/java</directory>
 6                 <includes>
 7                     <include>**/*.properties</include>
 8                     <include>**/*.xml</include>
 9                 </includes>
10                 <filtering>false</filtering>
11             </resource>
12         </resources>
13     </build>

 4、Maven项目热部署到tomcat,(tomcat处于开启状态)

1)配置tomcat管理权限

要打开tomcat的manager功能;在conf文件夹下的tomcat-users.xml的<tomcat-users>标签内添加如下内容

 <role rolename="manager-gui"/>  
  <role rolename="manager-script"/>  
  <role rolename="manager-jmx"/>  
  <role rolename="manager-status"/>  
  <user password="tomcat" username="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status" />

重点:开启远程控制模式,不然只能本地访问控制台,,,,坑,大坑

Tomcat8如果在上面配置的基础上,访问时会报403错误,所以需要修改,如果没有的话新建conf/Catalina/localhost/manager.xml 文件。

配置内容如下:

<Context privileged="true" antiResourceLocking="false"
         docBase="${catalina.home}/webapps/manager">
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

2)配置maven插件

 1         <plugins>
 2             <plugin>
 3                 <groupId>org.apache.maven.plugins</groupId>
 4                 <artifactId>maven-compiler-plugin</artifactId>
 5                 <version>3.7.0</version>
 6                 <configuration>
 7                     <source>1.8</source>
 8                     <target>1.8</target>
 9                 </configuration>
10             </plugin>
11             
12             <plugin>
13                 <groupId>org.apache.tomcat.maven</groupId>
14                 <artifactId>tomcat7-maven-plugin</artifactId>
15                 <configuration>
16                     <port>8080</port>
17                     <!-- /:表示发布成ROOT项目 -->
18                     <path>/</path>
19                     <!-- URL表示tomcat管理路径,除了ip端口,其他写死 -->
20                     <url>http://localhost:8080/manager/text</url>
21                     <!-- 用户名密码,根据tomcat配的写,必须要有manager-script权限 -->
22                     <username>tomcat</username>
23                     <password>tomcat</password>
24                 </configuration>
25             </plugin>
26         </plugins>

3)部署

(1) mvn clean install

(2) mvn tomcat7:deploy (第一次部署执行)

(2) mvn tomcat7:redeploy(第二次部署时执行)

可选参数:

-X 开启debug信息,不推荐

-DskipTests  跳过测试阶段,不推荐(除非你能保证一定正确)

原文地址:https://www.cnblogs.com/webyyq/p/8874411.html