部署maven的一些要点、遇到的问题
一、 maven环境的搭建 、 下载并配置maven(可做可不做) ()到http://maven.apache.org下载maven的最新版本,并解压到某一目录(假设是d:\develop\apache-maven3.0); ()配置系统环境变量:PATH里面加上d:\develop\apache-maven\bin ()配置JAVA_HOME到jdk目录 ()在命令行上输入 : mvn -version; 回车,如看到下面信息表示安装成功: ()在命令行上输入 : mvn help:system; 回车,会在当前用户目录下(win7是C:\Users\用户名,xp是c:\documents and settings\用户名),建立.m2目录。 、 Eclipse集成maven Update site是http://m2eclipse.sonatype.org/sites/m2e,全选安装就好了,重启eclipse. 这样就安装了eclipse集成的maven插件,但建议使用在第一步下载maven,做法如下:进入Preferences——》maven——》Installations,点击“Add”添加maven的解压路径。 、建立settings.xml文件 以下是我的配置,这里需要建立一个私服,在第四点介绍仓库时会介绍。 <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>d:\repository</localRepository>
<profiles>
<profile>
<id>dev</id>
<repositories>
<repository>
<id>releases</id>
<url>http://localhost:8888/nexus/content/repositories/releases</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<repository>
<id>central</id>
<name>Central</name>
<url>http://localhost:8888/nexus-2.0.3/content/repositories/central/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>
</settings> 其中下面标注为红色的,需要修改为自己的一个本地目录,以后所有的jar包都会放在这个下面. 我们将项目所需要用到除源代码之外的东西(如jar包,tomcat,script等都放在上面)通过这个文件,MAVEN会从服务器会拉取jar包到本地,如果服务器上的包有更新,也会自动去更新,这样,当框架有新的版本出现时,不再需要我们手动去重新添加jar包这么麻烦。 二、网厅环境的搭建(我配置的是南昌网厅,遇到错误没有成功运行) 、检出entity、base为java project ,biz为ejb project ,web为动态网页工程,script为javascript project。都有红叉叉,没事,继续下面的步骤后就好了。 2, 检出完成后对每个工程进行添加maven-enable依赖管理。 选中项目右键“Maven—》Enable Depandency management”,弹出以下界面: 这里需要设置maven的坐标,可以参考第四点的坐标。Group ID使用com.maywide.ibh,artifact Id是构件的id,设置为项目的名称,version不用管。Packaging除了web project用war外,其他选jar。 、依赖管理。打开项目的pom.xml文件添加依赖项。如biz_nanchang的依赖配置如下: <dependencies> <dependency> <groupId>com.maywide.ibh</groupId> <artifactId>base</artifactId> <version>0.0.-SNAPSHOT</version> </dependency> <dependency> <groupId>com.maywide.ibh</groupId> <artifactId>entity</artifactId> <version>0.0.-SNAPSHOT</version> </dependency> <dependency> <groupId>com.maywide.ibh</groupId> <artifactId>lib95</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>com.maywide.ibh</groupId> <artifactId>lib96</artifactId> <version>1.0</version> </dependency> 添加了对base、entity项目的依赖。其中lib95、lib96是privatelib的jar包。我上传到私服时把它命名成这样了。Base、entity项目也需要添加对lib的依赖项,在私服需要一个个jar包上传,所以需要一个个的添加依赖,lib有94个jar吧,慢慢加呗。因为maven的依赖具有传递性的,所以biz_nanchang项目不需要添加对lib的jar包的依赖。同理,web_nanchang项目只需要添加对biz_nanchang的依赖就可以了。 之后选择mvn install编译。 、把biz_nanchang和web_nanchang项目的jdk改成1.。进行maven下的操作时经常会把jdk给成1.5的,要检查一下。 、添加maven的依赖库到Web Deployment Assembly。网上说要这样做的,防止找不到jar包,不过这一步我没体现到它的用处。 、Web工程右键->Run as->Maven build,这时会跳出一个页面:如图: 在goals输入:tomcat:run-war, 在VM参数:添加 -Xdebug -Xrunjdwp:transport=dt_socket,address=,server=y,suspend=n 点击Apply,之后run就可以执行了。但期间遇到错误2、错误3和错误4。错误4没有解决导致网站无法运行。 三、我掌握的maven的一下知识点。 、坐标 Maven把项目作为构件,每个构件定义一个坐标,由于区分其他的构件,配置依赖时只需加入这个坐标,maven会先到本地仓库查找该构件,找不到就到远程仓库查找。 坐标如下: GroupId:定义当前maven项目所属的实际项目。例如网厅项目使用com.maywide.ibh。 ArtifactID:构件的ID,一个project、模块的id。 Version:版本号。 Packaging:打包的方式。默认是jar。Web project需要选择war。 、maven的依赖在<dependency>标签里设置,需输入构建的坐标。Maven是传递依赖的。 、仓库
仓库是存储构件的地方。Maven有本地仓库和远程仓库之分。
()本地仓库 在setting.xml的<localRepository>d:\repository</localRepository>里面配置本地仓库的位置 ,项目所需的构件会被下载到该目录。如网厅项目,我们可以打开该目录F:\maven,可以进入com文件夹—》maywinde文件夹—》ibh文件夹,看到我们的base、entity、biz等项目。 ()远程仓库 远程仓库分为中央仓库和私服。 中央仓库是全世界共享的一下常见的构件。 私服是一家公司、企业自己建的用于存储构件的的一个maven服务器,还有它也起到代理中央仓库的作用。目前最多人使用的是用nexus搭建maven私服。 私服的仓库分成4类:group(仓库组)、hosted(宿主)、proxy(代理)和虚拟(virtual)。Nexus默认已经有中央仓库的代理了。只需把下面提供的url配置到setting.xml文件了。 我们要使用到的是宿主仓库,用于存放项目的jar包。Maven提供Releases仓库用于存放发布版本的构件;Snapshots存放快照版本的构件;3rd party存放第三方构件。 选择一个仓库,可以进入以下界面上传构件: 四、遇到的问题和解决 错误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] 解决:这是配置的url有错误或者是私服没有配好,导致构件下载时出错。如果没有jar包需要在私服里下载,可以不配置私服的,也就是可以把setting.xml的profiles里的东西全部删除的。 错误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. [ERROR] 解决:这是因为测试代码时遇到错误,它会停止编译。只需要在pom.xml的<project>里添加以下配置,使得测试出错不影响项目的编译。 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <testFailureIgnore>true</testFailureIgnore> </configuration> </plugin> </plugins> </build> 错误3: [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 ] [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: 解决:maven的web项目默认的webroot是在src\main\webapp。如果在此目录下找不到web.xml就抛出以上的异常。解决方法在pom.xml加入以下的配置。红色背景字体改成你网站的根目录。 <build>
<finalName>simple-webapp</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.</version>
<configuration>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>WebContent</directory>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build> 错误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. -- :: org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc 严重: 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. 还不知道怎样解决,导致运行不了。 错误5: 这个感觉怪怪的,遇过几次。把java complier改成1.6或者disabled dependency manangent后在enable它,搞着搞着就消失了。
版权声明:本文为博主原创文章,未经博主允许不得转载。
部署maven的一些要点、遇到的问题的更多相关文章
- 部署maven的一些要点、遇到的问题和心得体会
maven的部署.遇到的问题和心得体会 2013-10-24 | 阅: 转: | 分享 部署maven的一些要点.遇到的问题和心得体会 (图片看不了,可以下载doc文件) 一. ...
- 【IDEA使用技巧】(5) —— IntelliJ IDEA集成Tomcat部署Maven Web项目
1.IntelliJ IDEA集成Tomcat部署Maven Web项目 1.1.IDEA构建Maven Web项目 使用IDEA来创建一个简单的Hello World的Maven Web项目,并使用 ...
- Intellij 部署maven项目
一 部署Maven项目 1.下载和配置 (1)下载:maven.apache.org,点击download,下载apache-maven-3.3.9-bin.zip (2)配置环境变量: 环境变量包括 ...
- 解决eclipse部署maven时,src/main/resources里面配置文件加载不到webapp下classes路径下的问题
解决eclipse部署maven时,src/main/resources里面配置文件加载不到webapp下classes路径下的问题. 有时候是src/main/resources下面的,有时候是sr ...
- tomcat部署maven web项目
tomcat上部署maven web项目的三种方法 1.将maven项目打成war包,然后放到tomcat容器中发布: 2.在IDE工具中部署tomcat,然后使用远程部署方式部署本地maven项目: ...
- 部署Maven项目到tomcat报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener【转】
部署Maven项目到tomcat报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderLi ...
- myeclipse部署maven项目到tomcat,src/main/resources里面配置文件部署不到webapp下classes
解决myeclipse部署maven时,src/main/resources里面配置文件加载不到webapp下classes路径下的问题. 有时候是src/main/resources下面的,有时候是 ...
- myeclipse部署maven时,src/main/resources里面配置文件加载不到webapp下classes路径下的问题
解决myeclipse部署maven时,src/main/resources里面配置文件加载不到webapp下classes路径下的问题. 有时候是src/main/resources下面的,有时候是 ...
- 如何使用jenkins部署maven父子工程
最近使用jenkins自动部署项目时遇到一个问题,如果部署单个的maven工程,没有什么问题, 但是在部署maven创建的父子工程,如果只从svn或者git上拉取子工程源码时,会报找不到父 工程pom ...
随机推荐
- orm 小结
1. 销售注册,登录系统 - 用户表 2.销售添加客户信息,成为销售的私户 - 客户表 3. 销售固定时间跟进客户 - 跟进记录表 4. 客户报名 - 报名记录表 - 班级表(必须 ...
- EF中GroupBy扩展方法的简单使用
public ActionResult ShopInfo() { ViewBag.ShopList = ShopService.GetEntities(x => x.IsDelete == fa ...
- 动态html处理和及其图像识别
爬虫(Spider),反爬虫(Anti-Spider),反反爬虫(Anti-Anti-Spider) 之间恢宏壮阔的斗争... Day 1 小莫想要某站上所有的电影,写了标准的爬虫(基于HttpCli ...
- 红帽配置Centos仓库[红帽Redhat7替换Centos7网络源]
1.卸载红帽yum源 rpm -e $(rpm -qa|grep yum) --nodeps 2.删除所有repo相关文件 rm -rf /etc/yum.conf rm -rf /etc/yum.r ...
- python3.5过滤网址和图片的函数自己亲测可用
def has_replace(tag): #过滤网址 real=re.sub(r'<a\shref=.+</a>', '',tag.decode(), count=0, flags ...
- OpenCL 双调排序 CPU 版
▶ 学习了双调排序,参考(https://blog.csdn.net/xbinworld/article/details/76408595) ● 使用 CPU 排序的代码 #include <s ...
- OpenACC 《大规模并行处理器编程实战》教材讲解
▶ <大规模并行处理器编程实战>第15章,关于OpenACC 的部分,散点 ● OpenACC 中,主机存储器和设备存储器是分开处理的,程序员只要制定要传输的存储器对象即可,编译器会自动生 ...
- DataSanp App与Rest, WebBroker App的区别
DataSanp App与Rest, WebBroker App的区别 datasnap server :选择这一项,我们得到的将是一个独立EXE的三层服务器应用程序(TCP及HTTP两种模式) To ...
- YII 使用modules下的css,js,img
用YII assets 1.assets的作用是方便模块化,插件化的,一般来说出于安全原因不允许通过url访问protected下面的文件,但是我们又希望将module单独出来,所以需要使用发布,即将 ...
- display_css
display所有可选值: none block inline inline-block inherit initial unset compact & marker list-item ru ...