1.  
  2. 一、 maven环境的搭建
  3.  
  4. 下载并配置maven(可做可不做)
  5.  
  6. ()到http://maven.apache.org下载maven的最新版本,并解压到某一目录(假设是d:\develop\apache-maven3.0);
  7.  
  8. ()配置系统环境变量:PATH里面加上d:\develop\apache-maven\bin
  9.  
  10. ()配置JAVA_HOMEjdk目录
  11.  
  12. ()在命令行上输入 mvn -version; 回车,如看到下面信息表示安装成功:
  13.  
  14. ()在命令行上输入 mvn help:system; 回车,会在当前用户目录下(win7C:\Users\用户名,xpc:\documents and settings\用户名),建立.m2目录。
  15.  
  16. Eclipse集成maven
  17.  
  18. Update sitehttp://m2eclipse.sonatype.org/sites/m2e,全选安装就好了,重启eclipse.
  19.  
  20. 这样就安装了eclipse集成的maven插件,但建议使用在第一步下载maven,做法如下:进入Preferences——》maven——》Installations,点击“Add”添加maven的解压路径。
  21.  
  22. 、建立settings.xml文件
  23.  
  24. 以下是我的配置,这里需要建立一个私服,在第四点介绍仓库时会介绍。
  25.  
  26. <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  27.  
  28. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  29.  
  30. xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
  31.  
  32. http://maven.apache.org/xsd/settings-1.0.0.xsd">
  33. <localRepository>d:\repository</localRepository>
  34. <profiles>
  35. <profile>
  36. <id>dev</id>
  37. <repositories>
  38. <repository>
  39. <id>releases</id>
  40. <url>http://localhost:8888/nexus/content/repositories/releases</url>
  41. <releases><enabled>true</enabled></releases>
  42.   <snapshots><enabled>true</enabled></snapshots>
  43. </repository>
  44. <repository>
  45. <id>central</id>
  46. <name>Central</name>
  47. <url>http://localhost:8888/nexus-2.0.3/content/repositories/central/</url>
  48. <releases><enabled>true</enabled></releases>
  49. <snapshots><enabled>true</enabled></snapshots>
  50. </repository>
  51. </repositories>
  52. </profile>
  53. </profiles>
  54. <activeProfiles>
  55. <activeProfile>dev</activeProfile>
  56. </activeProfiles>
  57. </settings>
  58.  
  59. 其中下面标注为红色的,需要修改为自己的一个本地目录,以后所有的jar包都会放在这个下面.
  60.  
  61. 我们将项目所需要用到除源代码之外的东西(如jar包,tomcat,script等都放在上面)通过这个文件,MAVEN会从服务器会拉取jar包到本地,如果服务器上的包有更新,也会自动去更新,这样,当框架有新的版本出现时,不再需要我们手动去重新添加jar包这么麻烦。
  62.  
  63. 二、网厅环境的搭建(我配置的是南昌网厅,遇到错误没有成功运行)
  64.  
  65. 、检出entitybasejava project ,bizejb project ,web为动态网页工程,scriptjavascript project。都有红叉叉,没事,继续下面的步骤后就好了。
  66.  
  67. 2, 检出完成后对每个工程进行添加maven-enable依赖管理。
  68.  
  69. 选中项目右键“Maven—》Enable Depandency management”,弹出以下界面:
  70.  
  71. 这里需要设置maven的坐标,可以参考第四点的坐标。Group ID使用com.maywide.ibhartifact Id是构件的id,设置为项目的名称,version不用管。Packaging除了web projectwar外,其他选jar
  72.  
  73. 、依赖管理。打开项目的pom.xml文件添加依赖项。如biz_nanchang的依赖配置如下:
  74.  
  75. <dependencies>
  76.  
  77. <dependency>
  78.  
  79. <groupId>com.maywide.ibh</groupId>
  80.  
  81. <artifactId>base</artifactId>
  82.  
  83. <version>0.0.-SNAPSHOT</version>
  84.  
  85. </dependency>
  86.  
  87. <dependency>
  88.  
  89. <groupId>com.maywide.ibh</groupId>
  90.  
  91. <artifactId>entity</artifactId>
  92.  
  93. <version>0.0.-SNAPSHOT</version>
  94.  
  95. </dependency>
  96.  
  97. <dependency>
  98.  
  99. <groupId>com.maywide.ibh</groupId>
  100.  
  101. <artifactId>lib95</artifactId>
  102.  
  103. <version>1.0</version>
  104.  
  105. </dependency>
  106.  
  107. <dependency>
  108.  
  109. <groupId>com.maywide.ibh</groupId>
  110.  
  111. <artifactId>lib96</artifactId>
  112.  
  113. <version>1.0</version>
  114.  
  115. </dependency>
  116.  
  117. 添加了对baseentity项目的依赖。其中lib95lib96privatelibjar包。我上传到私服时把它命名成这样了。Baseentity项目也需要添加对lib的依赖项,在私服需要一个个jar包上传,所以需要一个个的添加依赖,lib94jar吧,慢慢加呗。因为maven的依赖具有传递性的,所以biz_nanchang项目不需要添加对libjar包的依赖。同理,web_nanchang项目只需要添加对biz_nanchang的依赖就可以了。
  118.  
  119. 之后选择mvn install编译。
  120.  
  121. 、把biz_nanchangweb_nanchang项目的jdk改成1.。进行maven下的操作时经常会把jdk给成1.5的,要检查一下。
  122.  
  123. 、添加maven的依赖库到Web Deployment Assembly。网上说要这样做的,防止找不到jar包,不过这一步我没体现到它的用处。
  124.  
  125. Web工程右键->Run as->Maven build,这时会跳出一个页面:如图:
  126.  
  127. goals输入:tomcat:run-war
  128.  
  129. VM参数:添加
  130.  
  131. -Xdebug -Xrunjdwp:transport=dt_socket,address=,server=y,suspend=n
  132.  
  133. 点击Apply,之后run就可以执行了。但期间遇到错误2、错误3和错误4。错误4没有解决导致网站无法运行。
  134.  
  135. 三、我掌握的maven的一下知识点。
  136.  
  137. 、坐标
  138.  
  139. Maven把项目作为构件,每个构件定义一个坐标,由于区分其他的构件,配置依赖时只需加入这个坐标,maven会先到本地仓库查找该构件,找不到就到远程仓库查找。
  140.  
  141. 坐标如下:
  142.  
  143. GroupId:定义当前maven项目所属的实际项目。例如网厅项目使用com.maywide.ibh
  144.  
  145. ArtifactID:构件的ID,一个project、模块的id
  146.  
  147. Version:版本号。
  148.  
  149. Packaging:打包的方式。默认是jarWeb project需要选择war
  150.  
  151. maven的依赖在<dependency>标签里设置,需输入构建的坐标。Maven是传递依赖的。
  152.  
  153. 、仓库
  154. 仓库是存储构件的地方。Maven有本地仓库和远程仓库之分。
  155. ()本地仓库
  156.  
  157. setting.xml的<localRepository>d:\repository</localRepository>里面配置本地仓库的位置 ,项目所需的构件会被下载到该目录。如网厅项目,我们可以打开该目录F:\maven,可以进入com文件夹—》maywinde文件夹—》ibh文件夹,看到我们的baseentitybiz等项目。
  158.  
  159. ()远程仓库
  160.  
  161. 远程仓库分为中央仓库和私服。
  162.  
  163. 中央仓库是全世界共享的一下常见的构件。
  164.  
  165. 私服是一家公司、企业自己建的用于存储构件的的一个maven服务器,还有它也起到代理中央仓库的作用。目前最多人使用的是用nexus搭建maven私服。
  166.  
  167. 私服的仓库分成4类:group(仓库组)、hosted(宿主)、proxy(代理)和虚拟(virtual)。Nexus默认已经有中央仓库的代理了。只需把下面提供的url配置到setting.xml文件了。
  168.  
  169. 我们要使用到的是宿主仓库,用于存放项目的jar包。Maven提供Releases仓库用于存放发布版本的构件;Snapshots存放快照版本的构件;3rd party存放第三方构件。
  170.  
  171. 选择一个仓库,可以进入以下界面上传构件:
  172.  
  173. 四、遇到的问题和解决
  174.  
  175. 错误1 [ERROR] Failed to execute goal on project biz_zhuhai: Could not resolve dependencies for project biz_zhuhai:biz_zhuhai:jar:0.0.-SNAPSHOT: Failed to collect dependencies for [com.maywide.ibh:lib345:pom:1.0 (compile)]: Failed to read artifact descriptor for com.maywide.ibh:lib345:pom:1.0: Could not transfer artifact com.maywide.ibh:lib345:pom:1.0 from/to releases (http://localhost:8888/nexus/content/repositories/releases): Connection to http://localhost:8888 refused: Connection refused: connect -> [Help 1]
  176.  
  177. 解决:这是配置的url有错误或者是私服没有配好,导致构件下载时出错。如果没有jar包需要在私服里下载,可以不配置私服的,也就是可以把setting.xmlprofiles里的东西全部删除的。
  178.  
  179. 错误2:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test (default-test) on project web_nanchang: There are test failures.
  180.  
  181. [ERROR]
  182.  
  183. 解决:这是因为测试代码时遇到错误,它会停止编译。只需要在pom.xml的<project>里添加以下配置,使得测试出错不影响项目的编译。
  184.  
  185. <build>
  186.  
  187. <plugins>
  188.  
  189. <plugin>
  190.  
  191. <groupId>org.apache.maven.plugins</groupId>
  192.  
  193. <artifactId>maven-surefire-plugin</artifactId>
  194.  
  195. <configuration>
  196.  
  197. <testFailureIgnore>true</testFailureIgnore>
  198.  
  199. </configuration>
  200.  
  201. </plugin>
  202.  
  203. </plugins>
  204.  
  205. </build>
  206.  
  207. 错误3
  208.  
  209. [ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.1.:war (default-war) on project web_nanchang: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help ]
  210.  
  211. [ERROR]
  212.  
  213. [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
  214.  
  215. [ERROR] Re-run Maven using the -X switch to enable full debug logging.
  216.  
  217. [ERROR]
  218.  
  219. [ERROR] For more information about the errors and possible solutions, please read the following articles:
  220.  
  221. 解决:mavenweb项目默认的webroot是在src\main\webapp。如果在此目录下找不到web.xml就抛出以上的异常。解决方法在pom.xml加入以下的配置。红色背景字体改成你网站的根目录。
  222.  
  223. <build>
  224. <finalName>simple-webapp</finalName>
  225. <plugins>
  226. <plugin>
  227. <groupId>org.apache.maven.plugins</groupId>
  228. <artifactId>maven-war-plugin</artifactId>
  229. <version>2.1.</version>
  230. <configuration>
  231. <webResources>
  232. <resource>
  233. <!-- this is relative to the pom.xml directory -->
  234. <directory>WebContent</directory>
  235. </resource>
  236. </webResources>
  237. </configuration>
  238. </plugin>
  239. </plugins>
  240. </build>
  241.  
  242. 错误4 严重: The web application [/web_nanchang] registered the JBDC driver [org.hsqldb.jdbc.JDBCDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
  243.  
  244. -- :: org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
  245.  
  246. 严重: The web application [/web_nanchang] registered the JBDC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
  247.  
  248. 还不知道怎样解决,导致运行不了。
  249.  
  250. 错误5
  251.  
  252. 这个感觉怪怪的,遇过几次。把java complier改成1.6或者disabled dependency manangent后在enable它,搞着搞着就消失了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

部署maven的一些要点、遇到的问题的更多相关文章

  1. 部署maven的一些要点、遇到的问题和心得体会

    maven的部署.遇到的问题和心得体会 2013-10-24 | 阅:  转:  |  分享         部署maven的一些要点.遇到的问题和心得体会 (图片看不了,可以下载doc文件) 一.  ...

  2. 【IDEA使用技巧】(5) —— IntelliJ IDEA集成Tomcat部署Maven Web项目

    1.IntelliJ IDEA集成Tomcat部署Maven Web项目 1.1.IDEA构建Maven Web项目 使用IDEA来创建一个简单的Hello World的Maven Web项目,并使用 ...

  3. Intellij 部署maven项目

    一 部署Maven项目 1.下载和配置 (1)下载:maven.apache.org,点击download,下载apache-maven-3.3.9-bin.zip (2)配置环境变量: 环境变量包括 ...

  4. 解决eclipse部署maven时,src/main/resources里面配置文件加载不到webapp下classes路径下的问题

    解决eclipse部署maven时,src/main/resources里面配置文件加载不到webapp下classes路径下的问题. 有时候是src/main/resources下面的,有时候是sr ...

  5. tomcat部署maven web项目

    tomcat上部署maven web项目的三种方法 1.将maven项目打成war包,然后放到tomcat容器中发布: 2.在IDE工具中部署tomcat,然后使用远程部署方式部署本地maven项目: ...

  6. 部署Maven项目到tomcat报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener【转】

    部署Maven项目到tomcat报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderLi ...

  7. myeclipse部署maven项目到tomcat,src/main/resources里面配置文件部署不到webapp下classes

    解决myeclipse部署maven时,src/main/resources里面配置文件加载不到webapp下classes路径下的问题. 有时候是src/main/resources下面的,有时候是 ...

  8. myeclipse部署maven时,src/main/resources里面配置文件加载不到webapp下classes路径下的问题

    解决myeclipse部署maven时,src/main/resources里面配置文件加载不到webapp下classes路径下的问题. 有时候是src/main/resources下面的,有时候是 ...

  9. 如何使用jenkins部署maven父子工程

    最近使用jenkins自动部署项目时遇到一个问题,如果部署单个的maven工程,没有什么问题, 但是在部署maven创建的父子工程,如果只从svn或者git上拉取子工程源码时,会报找不到父 工程pom ...

随机推荐

  1. SpringBoot入门篇--读取资源文件配置

    在项目的开发中,我们知道的是SpringBoot框架大大减少了我们的配置文件,但是还是留下了一个application.properties文件让我们可以进行一些配置.当然这些配置必然是包括服务器的配 ...

  2. apache伪静态失败,但是phpinfo显示有rewrite的时候考虑的情况

    大家知道除了加载loadmodule后 还需要修改http.conf 使apache支持.htaccess 允许在任何目录中使用“.htaccess”文件,将“AllowOverride”改成“All ...

  3. leetcode748

    public class Solution { public string ShortestCompletingWord(string licensePlate, string[] words) { ...

  4. apache中 MaxClients 与MaxRequestsPerChild

    据现象来对APACHE调优,以前用MAXCLIENTS 3000,砖家建议后,改为1500,今天查资料如下: http://www.linuxqq.net/ MaxClients 要加到多少?连接数理 ...

  5. jsp访问java变量

    jsp页面中javascript访问 java的变量 <%= JAVA变量名%> jsp中嵌入java代码<%java代码%> --变量<% String JAVASOu ...

  6. 18 subprocess模块(跟操作系统交互)

    1.基本概念介绍 我们经常需要通过Python去执行一条系统命令或脚本,系统的shell命令是独立于你的python进程之外的, 每执行一条命令,就是发起一个新进程,通过python调用系统命令或脚本 ...

  7. ios 给图片加文字

    - (UIImage*) drawText:(NSString*)text inImage:(UIImage*)image { //prepare image context UIGraphicsBe ...

  8. JVM内存管理基础

     JVM 虚拟机架构(图片来源: 浅析Java虚拟机结构与机制) JVM 内存区域 JVM会将Java进程所管理的内存划分为若干不同的数据区域. 这些区域有各自的用途.创建/销毁时间: (图片来源:  ...

  9. Object-c 构造、析构函数

    一.构造函数 在OC中凡是已init开头的函数我们都称之为构造函数,在声明构造函数的时候,不带参数的一般直接声明为“-(id)init”,带参数的一般声明为“-(id)initWith...”. @i ...

  10. js中的Event对象

    event代表事件的状态,例如触发event对象的元素,鼠标的位置及状态,按下的键等等 event对象只在事件发生的过程中才有效. <!DOCTYPE html><html lang ...