结合实际项目分析pom.xml

 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 2   <modelVersion>4.0.0</modelVersion>
 3   <groupId>com.wang</groupId>
 4   <artifactId>test-maven-server-console</artifactId>
 5   <version>0.0.1-SNAPSHOT</version>
 6   <name>test-maven-server-console</name>
 7   <packaging>war</packaging> 
 8   <properties>
 9       <warPackageName>MyWebAppDemo</warPackageName>
10         <tomcat.server>tomcat</tomcat.server>
11         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
12   </properties>
13   
14   <dependencies>
15   <!-- 
16       <dependency>
17           <groupId>com.wang</groupId>
18           <artifactId>test-maven-api</artifactId>
19           <version>0.0.1-SNAPSHOT</version>
20       </dependency>
21    -->
22    
23    <dependency>
24         <groupId>org.springframework</groupId>
25         <artifactId>spring-context</artifactId>
26         <version>4.2.6.RELEASE</version>
27     </dependency>
28       <dependency>
29         <groupId>org.springframework</groupId>
30         <artifactId>spring-web</artifactId>
31         <version>4.2.6.RELEASE</version>
32     </dependency>
33 
34     <dependency>
35         <groupId>com.alibaba</groupId>
36         <artifactId>dubbo</artifactId>
37         <version>2.5.3</version>
38         <exclusions>             
39           <exclusion>                
40           <groupId>org.springframework</groupId>                
41           <artifactId>spring</artifactId>             
42           </exclusion>         
43           </exclusions>    
44     </dependency>
45       
46       <dependency>
47           <groupId>org.apache.zookeeper</groupId>
48           <artifactId>zookeeper</artifactId>
49           <version>3.4.6</version>
50       </dependency>
51   
52       <dependency>
53           <groupId>com.github.sgroschupf</groupId>
54           <artifactId>zkclient</artifactId>
55           <version>0.1</version>
56       </dependency>
57   </dependencies>
58   
59   <build>
60       <finalName>${warPackageName}</finalName>
61       <plugins>
62           <plugin>
63             <groupId>org.apache.maven.plugins</groupId>
64             <artifactId>maven-compiler-plugin</artifactId>
65             <version>3.1</version>
66             <configuration>
67               <source>1.8</source>
68               <target>1.8</target>
69             </configuration>
70         </plugin>
71         <plugin>
72             <artifactId>maven-war-plugin</artifactId>
73             <configuration>
74                 <version>2.5</version>
75                  <webXml>src\main\webapp\WEB-INF\web.xml</webXml>
76             </configuration>
77         </plugin>
78           <plugin>
79               <groupId>org.codehaus.mojo</groupId>
80               <artifactId>tomcat-maven-plugin</artifactId>
81               <version>1.1</version>
82               <configuration>
83                   <!-- <warFile>target/serverdemo.war</warFile> -->
84                   <server>${tomcat.server}</server>
85                   <url>http://192.168.234.9:8080/manager/text</url>
86                   <path>/${warPackageName}</path>
87               </configuration>
88           </plugin>
89       </plugins>
90   </build>
91    
92 </project>

1、build

Server:用来指定到哪个服务器,${}获取properties中的变量tomcat,然后调用settings.xml文件中配置的tomcat和用户名、密码(上一节)

url:用来指定发布到服务器的地址,h后面必须跟text

path:即部署到服务器的项目名,这里是webapps/MyWebAppDemo.war.访问路径http://192.168.234.9:8080/MyWebAppDemo

profile:

Server变量有三种配置方式:

a、

<properties>
        <warPackageName>MyWebAppDemo</warPackageName>
        <tomcat.deploy.server>localTestServer</tomcat.deploy.server>     
<tomcat.deploy.serverUrl>http://localhost/manager/text</tomcat.deploy.serverUrl> </properties>

b、

<profiles>
        <profile>
            <id>deploy2production</id>
            <properties>
                <tomcat.deploy.server>productionServer</tomcat.deploy.server>               
<tomcat.deploy.serverUrl>http://120.26.93.30:8080/manager/text</tomcat.deploy.serverUrl> </properties> </profile> </profiles>

c、

<plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
            <configuration>
                <port>8089</port>
                <path>/</path>
                <url>http://192.168.234.9:8080/manager/text</url>
                <username>admin</username>
                <password>admin</password>
                <update>true</update> 
         </configuration>
</plugin>

2、UTF-8编码问题

3、Spring框架冲突问题

因为既依赖dubbo框架,又依赖spring框架,导致报错(一般报NoSuchMethodError都是因为依赖冲突)

22-Oct-2016 01:17:46.438 信息 [http-nio-8080-exec-11] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath
22-Oct-2016 01:17:46.550 严重 [http-nio-8080-exec-11] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
 java.lang.NoSuchMethodError: org.springframework.core.CollectionFactory.createConcurrentMapIfPossible(I)Ljava/util/Map;

解决方法:

 <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dubbo</artifactId>
        <version>2.5.3</version>
        <exclusions>             
         <exclusion>                
          <groupId>org.springframework</groupId>                
          <artifactId>spring</artifactId>             
         </exclusion>         
    </exclusions>    
 </dependency>

4、web.xml问题

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project test-maven-server-console: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]

[ERROR]

[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

[ERROR] Re-run Maven using the -X switch to enable full debug logging.

[ERROR]

[ERROR] For more information about the errors and possible solutions, please read the following articles:

解决方法:手动配置读取web.xml

<plugin>
       <artifactId>maven-war-plugin</artifactId>
       <configuration>
              <version>2.5</version>
              <webXml>src\main\webapp\WEB-INF\web.xml</webXml>
        </configuration>
</plugin>

5、Maven clean导致引入jar文件没有编译的问题

[ERROR] /F:/stsProjects/test-maven-server-console/src/main/java/com/test/dubbo/controller/IndexController.java:[8,39] 程序包com.test.dubbo.registry.service不存在

[ERROR] /F:/stsProjects/test-maven-server-console/src/main/java/com/test/dubbo/controller/IndexController.java:[14,17] 找不到符号

  符号:   类 TestRegistryService

  位置: 类 com.test.dubbo.controller.IndexController

6、Maven默认使用jdk1.5的问题

7、web项目不存在src/main/webapp目录的问题

右键项目—Build Path -- Configure Build Path –Libraries –双击JRE System Liaraies – 在Execution environment选择合适版本

完整的项目目录:

 

posted @ 2016-12-28 23:26  impwang  阅读(416)  评论(0编辑  收藏  举报