`
weiguo21
  • 浏览: 18653 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

部署maven的一些要点、遇到的问题

 
阅读更多
 

一、       maven环境的搭建

1、 下载并配置maven(可做可不做)

(1)到http://maven.apache.org下载maven的最新版本,并解压到某一目录(假设是d:\develop\apache-maven3.0);
2)配置系统环境变量:PATH里面加上d:\develop\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文件

以下是我的配置,这里需要建立一个私服,在第四点介绍仓库时会介绍。

<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包这么麻烦。


二、网厅环境的搭建(我配置的是南昌网厅,遇到错误没有成功运行)

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>d:\repository</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: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.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安装与配置要点和难点以及常见报错和解决方案.zip

    ** Maven安装与配置要点 ** Maven是Java项目管理和构建工具,它简化了构建过程,通过依赖管理和项目对象模型(Project Object Model, POM)来自动化构建流程。以下是一些关键的安装和配置步骤: 1. **下载Maven**...

    Maven实战,给初学者学习的好东西

    1. **依赖冲突**:如果遇到依赖版本冲突的问题,可以通过 POM 文件中的 `&lt;dependencyManagement&gt;` 部分显式指定依赖版本,或者使用 `mvn dependency:tree` 命令查看依赖树来排查问题。 2. **构建失败**:构建过程中...

    maven+SSH+bootstrap电影项目

    在这个项目中,开发团队可能会遇到如下的技术挑战和要点: - 安全性:登录和注册功能需要考虑用户的账户安全,可能需要实现密码加密存储、防止SQL注入和XSS攻击等。 - 性能优化:对于大量电影数据的展示,可能需要...

    spring-boot-reference2.1.8.pdf

    Spring Boot 是一个流行的开源Java框架,用于构建微服务和基于Spring的应用程序。...手册的每个章节都旨在帮助开发者解决在开发过程中可能遇到的问题,从安装、配置到打包和部署,都提供了详尽的步骤和最佳实践。

    fluent-heroku:在Heroku上的Fluent-http应用程序的部署测试

    11. **错误处理和调试**:如果在部署后遇到问题,Heroku的错误日志可以帮助定位问题。你也可以使用Heroku的附加服务如Loggly或New Relic进行更深入的错误分析和性能监控。 12. **持续集成/持续部署(CI/CD)**:为了...

    SpringBoot开发非常美观的java博客系统.pdf

    - 当遇到`EmbeddedServletContainerFactory`异常时,可能需要注释掉相关配置,并重新导入Maven依赖。 - 第三方登录失败可能是由于回调URL无效,需在第三方平台注册应用并获取OAuth账号。 - IDEA导入项目后缺少...

    SpringBoot开发非常美观的java博客系统(包含后台管理功能).docx

    ### Spring Boot 开发美观的 Java 博客系统(含后台管理功能)——核心知识点解析 #### 一、项目概述 ...此外,还提供了具体的部署步骤和常见问题解决方案,有助于快速上手并解决实际操作过程中遇到的问题。

    Java EE第三章源码包MybatisTest03.zip

    5. **调试与优化** - 在遇到问题时,利用IDE的调试工具定位问题,优化SQL性能,或者调整Spring配置以提高应用性能。 【学习要点】 1. **Mybatis的动态SQL** - 学习如何在Mapper XML文件中编写动态SQL,以实现灵活...

    IT公司面试大全

    同时,了解构建工具(如Maven、Gradle)和自动化部署工具(如Docker、Jenkins)也十分必要。此外,数据可视化工具(如Tableau)、数据库管理工具(如MySQL Workbench)以及性能分析工具(如JMeter、Postman)也是...

    SpringBoot

    - **获取帮助**:文档中包含了如何获取支持与帮助的信息,无论是遇到问题还是寻求更深层次的技术探讨,都能找到合适的渠道。 - **初学者起步**:通过简单的步骤引导新手快速上手,包括环境搭建、项目创建等基础操作...

    基于SSM框架+jsp前端的民宿网站项目

    【SSM框架详解】 SSM框架是Java Web开发中常用的一种整合框架,由Spring、Spring MVC和MyBatis三个开源框架组成...在实践中遇到问题,应积极查阅文档、参考教程,或者参与社区讨论,以加深理解,提高解决问题的能力。

    临时备忘录

    4. **开发工具**:在软件开发过程中,开发者会使用各种工具,如IDE(如IntelliJ IDEA、Eclipse)、版本控制系统(如Git)、构建工具(如Maven、Gradle)、持续集成/持续部署(CI/CD)工具(如Jenkins)等。这些工具...

    Heritrix 源码和Jar

    当遇到爬取失败、重复抓取、内存溢出等问题时,了解Heritrix的日志系统和调试方法,可以帮助快速定位和解决问题。 总之,Heritrix、Lucene和Dwr的组合为构建一个功能强大的网络搜索引擎提供了坚实的基础。通过深入...

    823双鱼林SSM_EasyUI图书管理系统运行演示

    在实际操作过程中,开发者可能会遇到一些常见问题,例如配置文件错误、数据库连接异常、权限设置不当等,这些问题需要通过阅读日志、调试代码和查阅文档来解决。 总的来说,"823双鱼林SSM_EasyUI图书管理系统"是一...

    ActiveMQ相关编译源程序.rar

    - **注意事项**:编译过程中可能遇到的问题包括依赖冲突、版本不兼容等,需要根据错误提示进行排查和解决。 3. **自定义配置** - **配置文件**:ActiveMQ的主要配置文件是`conf/activemq.xml`,这里可以设置...

    WEBLOGIN的安装以及使用

    ### WEBLOGIC的安装及使用详解 #### 一、WebLogic服务器简介 ...本文将详细介绍如何安装WebLogic 9.0版本并进行基本...这对于初学者来说是一个非常好的实践教程,能够帮助他们快速掌握WebLogic的基本操作流程和技术要点。

    eclipse中使用webservice远程服务 超详细教程

    此外,随着技术的不断进步和发展,未来可能会出现更多高效便捷的方式来处理远程服务调用问题,开发者应持续关注相关领域的最新进展和技术更新。 通过本教程的学习,相信您已经掌握了在Eclipse中使用WebService的...

    Guns 技术文档 v5.1.pdf

    文档还包含了一个“常见问题答疑”部分,列举了一些用户常遇到的问题及其解决方案,例如: - 默认的系统登录账号和密码。 - 权限异常的原因及其排查方法。 - 分页为什么在前端实现。 - `${ctxPath}`变量的含义及...

    我做的知识库系统

    ITEYE是一个中国知名的IT技术社区,博主“tntxia”分享了他们的知识库系统项目,可能包含了开发过程、技术选型、遇到的问题及解决方案等内容。访问这个链接可以深入了解系统的实现细节和技术要点。 【标签】:...

Global site tag (gtag.js) - Google Analytics