- 浏览: 146290 次
- 性别:
- 来自: 天津
文章分类
最新评论
-
liuxiang00435057:
不知道,你有这个的实现不,能发给我参考下吗,liuxiang0 ...
RBAC模型的通用权限管理系统的设计(数据模型)的扩展 -
步青龙:
这个批量上传确定可以用吗?我这怎么不行呢,官方的Demo也不行 ...
KindEditor 4.1 发布,开源HTML编辑器
部署 maven 的一些要点、遇到的问题和心得体会
(图片看不了,可以下载doc文件)
文章转自:http://xianguiquan.iteye.com/blog/1506572
一、 maven 环境的搭建
1、 下载并配置 maven (可做可不做)
( 1 )到 http://maven.apache.org 下载 maven 的最新版本 , 并解压到某一目录 ( 假设是 d:\apache-maven);
( 2 )配置系统环境变量 :PATH 里面加上 d:\apache-maven\bin
( 3 )配置 JAVA_HOME 到 jdk 目录
( 4 )在命令行上输入 : mvn -version; 回车,如看到下面信息表示安装成功:
( 5 )在命令行上输入 : mvn help:system; 回车,会在当前用户目录下 (win7 是 C:\Users\ 用户名 ,xp 是 c:\documents and settings\ 用户名 ), 建立 .m2 目录。
2、 Eclipse 集成 maven
Update site 是 http://m2eclipse.sonatype.org/sites/m2e , 全选安装就好了 , 重启 eclipse.
这样就安装了 eclipse 集成的 maven 插件,但建议使用在第一步下载 maven ,做法如下:进入 Preferences ——》 maven ——》 Installations ,点击“ Add ”添加 maven 的解压路径。
3 、建立 settings.xml 文件
如果没有做第一部操作,需要自己在当前用户目录下建立 .m2 目录。之后在 .m2 目录下建立 setting.xml 文件 . 注意: 《 maven 基本使用指南 _ 小飞侠版 1.doc 》这个文档的配置是错误的, mvn install 时会提示:连接不了 180.200.3.76:8081 的错误。是 76 服务器的 maven 私服没有建好的原因 。
以下是我的配置,这里需要建立一个私服,在第四点介绍仓库 时会介绍。
<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>F:\maven </localRepository>
<profiles>
<profile>
<id>dev</id>
<repositories>
<repository>
<id>releases</id>
<url>http://localhost:8888/nexus-2.0.3/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 包这么麻烦。
二、 网厅环境的搭建 (我配置的是南昌网厅,遇到错误没有成功运行)
1、 检出 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 。
3、 依赖管理。打开项目的 pom.xml 文件添加依赖项。如 biz_nanchang 的依赖配置如下:
< dependencies >
< dependency >
< groupId > com.maywide.ibh </ groupId >
< artifactId > base </ artifactId >
< version > 0.0.1 -SNAPSHOT </ version >
</ dependency >
< dependency >
< groupId > com.maywide.ibh </ groupId >
< artifactId > entity </ artifactId >
< version > 0.0.1 -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 编译。
3 、把 biz_nanchang 和 web_nanchang 项目的 jdk 改成 1.6 。进行 maven 下的操作时经常会把 jdk 给成 1.5 的,要检查一下。
4 、添加 maven 的依赖库到 Web Deployment Assembly 。网上说要这样做的,防止找不到 jar 包,不过这一步我没体现到它的用处。
5 、 Web 工程右键 ->Run as->Maven build, 这时会跳出一个页面:如图:
在 goals 输入: tomcat:run-war ,
在 VM 参数 : 添加
-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
点击 Apply ,之后 run 就可以执行了。但期间遇到错误 2 、错误 3 和错误 4 。错误 4 没有解决导致网站无法运行。
三、我掌握的 maven 的一下知识点。
1 、坐标
Maven 把项目作为构件,每个构件定义一个坐标,由于区分其他的构件,配置依赖时只需加入这个坐标, maven 会先到本地仓库查找该构件,找不到就到远程仓库查找。
坐标如下:
GroupId :定义当前 maven 项目所属的实际项目。例如网厅项目使用 com.maywide.ibh 。
ArtifactID: 构件的 ID ,一个 project 、模块的 id 。
Version: 版本号。
Packaging: 打包的方式。默认是 jar 。 Web project 需要选择 war 。
2 、 maven 的依赖 在 < dependency > 标签里设置,需输入构件的坐标。 Maven 是传递依赖的。
3 、仓库
仓库是存储构件的地方。 Maven 有本地仓库和远程仓库之分。
( 1 )本地仓库
在 setting.xml 的 <localRepository>F:\maven </localRepository> 里面配置本地仓库的位置 ,项目所需的构件会被下载到该目录。如网厅项目,我们可以打开该目录 F:\maven ,可以进入 com 文件夹—》 maywinde 文件夹—》 ibh 文件夹,看到我们的 base 、 entity 、 biz 等项目。
( 2 )远程仓库
远程仓库分为中央仓库和私服。
中央仓库 是全世界共享的一下常见的构件。
私服 是一家公司、企业自己建的用于存储构件的的一个 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.1-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:9888/nexus-2.0.3/content/repositories/releases): Connection to http://localhost:9888 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]
[ERROR] Please refer to E:\maven\web_nanchang\target\surefire-reports for the individual test results.
解决 :这是因为测试代码时遇到错误,它会停止编译。只需要在 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.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 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:
解决 : 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.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.
2012-4-27 10:36:49 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 不了解,按着小飞侠的文档来部署,但那个文档是 boss2 的,而我配的是网厅项目,部署不成功又不知道什么原因。所以我觉得用 boss2 的配置文档去配置网厅的,应该先弄清楚每一步是什么意思。就比如 boss2 的项目为什么不需要检出 lib 和 privatelib 呢,是因为私服里已经有了 jar 包,而网厅的没有,所以不理解地按着文档搞是白搞的。
之后我上网找资料,还买了本书,去学习 maven 。结果学习了一些 maven 的知识,知道怎样配私服,还按书本部署了几个简单的项目。但当用到网厅的时候出现一些奇怪的错误,上网找答案,尝试了多种方法解决了一些错误。我觉得一个部署项目好郁闷啊,如果有个人请教一下或者讨论一下,会很高效。
相关推荐
**五、学习Maven的心得体会** 1. **实践出真知**:理论学习后,一定要动手实践,通过构建项目来加深理解。 2. **善用资源**:利用官方文档、在线教程、社区问答,遇到问题及时寻求解答。 3. **持续更新**:Maven...
NULL 博文链接:https://xianguiquan.iteye.com/blog/1506572
里面有一套详细的2018maven最新视频和资料,同时也附带其他技术的分享渠道,里面有我自己对学习maven和软件开发技术的心得体会。
Eclipse构建和部署Maven项目涉及多个步骤,包括创建Maven工程、配置Maven项目、将其转换为Dynamic Web项目以及设置Web部署集。以下是对这些步骤的详细解释: 1. 创建Maven工程: - 在Eclipse中,选择"File" > "New...
下面我们将详细探讨如何在MyEclipse中部署和配置Maven,以及可能遇到的问题和解决方案。 1. **Maven安装与配置**: 在开始在MyEclipse中使用Maven之前,你需要先下载并安装Maven。访问Apache Maven官方网站下载...
### Intellj构建和部署Maven Web项目详解 #### 一、Maven简介与功能概述 Maven是一款项目构建和管理工具,它提供了一系列的方法帮助开发者管理构建过程、文档、报告、依赖关系、源码控制系统(SCMs)、发布流程以及...
本文将详细介绍Maven项目搭建过程中可能遇到的一些常见问题及其解决方法。 #### 1. Eclipse Maven项目无法识别src/main/java源文件夹 **问题描述**: 在使用Eclipse进行Maven项目开发时,有时会发现src/main/java...
总之,MyEclipse与Maven的结合为Java开发者提供了便捷的开发、部署和调试环境。理解并熟练掌握这一过程,不仅能提升工作效率,也有助于团队协作和项目维护。记住,持续学习和实践是成为专业IT大师的关键。
2. **生命周期与构建目标**: Maven的生命周期包括清理(clean)、编译(compile)、测试(test)、打包(package)、验证(install)和部署(deploy)等阶段。通过命令行执行`mvn clean install`即可完成整个生命...
通过以上步骤,我们不仅可以实现 Maven 项目的自动化部署,还可以进一步优化持续集成流程,提升软件开发的整体效率和质量。此外,通过不断实践和完善,可以逐步扩展到更复杂的部署场景和技术栈中。
利用eclipse构建和部署maven工程,服务器可选择Tomcat或者Jetty!!
myeclipse下部署maven项目的相关操作文档
myeclipse中maven的一些常见功能总结;借助maven将本地项目部署到远程tomcat容器。
"Maven 远程部署 Tomcat 容器详解" Maven 远程部署 Tomcat 容器是指使用 Maven 插件将 Java Web 项目自动部署到 Tomcat 容器中,这样可以免去手工拷贝的重复工作。这种方法可以大大提高开发效率和项目部署速度。 ...
总结来说,Maven通过POM和生命周期简化了Java项目的构建和管理,同时,`distributionManagement`模块和相关的插件如`wagon-ftp`使项目部署变得简单易行。理解并掌握这些基本概念和操作,对于日常的Java开发工作至关...
Linux 环境 Jenkins 安装部署 Maven 项目是指在 Linux 操作系统上安装和配置 Jenkins,以便将 Maven 项目部署到服务器上。在这个过程中,我们需要下载和安装 Jenkins,配置 Jenkins 环境,安装 Maven 和 Git,配置...
在Maven项目中启用Jetty热部署,主要涉及以下几个关键步骤和知识点: 1. **添加Jetty插件依赖**:首先,在项目的`pom.xml`文件中,我们需要添加Jetty Maven插件的依赖。这可以通过在`<build>`标签内添加`<plugins>`...
【Maven 安装部署】 Maven 是一个强大的项目管理工具,主要负责Java项目的构建、依赖管理和项目信息管理。它的核心理念是通过一个统一的项目对象模型(Project Object Model,POM),使得项目的构建过程标准化,...