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

Maven使用介绍(两种方式启动Tomcat的环境配置)

阅读更多
1....maven能做些什么?.. 2

1.1                  概念... 2

1.2                  依赖管理... 2

1.3                  生成项目骨架... 2

1.4                  自动化测试... 3

1.5                  持续集成构建... 3

2.... 环境配置.. 3

2.1                  嵌入式运行tomcat. 3

2.2                  外部运行tomcat. 3

2.3                  Nexus创建私服... 4

3.... 参考资料.. 5

3.1                  注意事项... 5

3.2                  Maven常用命令... 5

3.3                  Tomcat- Maven-Plugin常用命令... 6

3.4                  Maven-POM设置: 7

3.5                  Maven-Settings设置: 7



maven能做些什么?
1.1      概念
Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的编译,测试,打包,清理,部署等构建任务,以及生成测试报告和javadoc文档的软件项目管理工具。。

1.2      依赖管理
简单说就是统一管理jar包(也叫artifact:构件)以及之间的关系,包括版本定义和切换,构件的下载,管理构件依赖和调解构件冲突等。

1.3      生成项目骨架
已经有很多组织开发了特定于某种类型的项目骨架,可以用来创建特定类型的项目原型。比如:创建基于seam框架的项目原型。

archetype? 是一个内建插件,他的create任务将建立项目骨架

可用项目骨架有:

* maven-archetype-archetype

* maven-archetype-j2ee-simple

* maven-archetype-mojo

* maven-archetype-portlet

* maven-archetype-profiles (currently under development)

* maven-archetype-quickstart

* maven-archetype-simple (currently under development)

* maven-archetype-site

* maven-archetype-site-simple, and

* maven-archetype-webapp

1.4      自动化测试
使用surefire插件来进行自动化测试,支持Junit和TestNG测试框架

1.5      持续集成构建
于持续集成(continuous integeration)配合服务器,可以进行持续的构建和测试项目,还可以监视一些定期执行的任务, 生成JUnit/TestNG测试报告。常用的ci服务器有:Eclipse 基金会的顶级项目Hudson和Bamboo等。

2       环境配置
1) 、考虑到兼容问题,eclipse选择galileo(3.5.0),tomcat6.0.18,jdk 1.6.0_17,maven3.0.4.

2) 、给eclipse集成maven:m2eclipse的安装,在eclipse的Help菜单中点击Install New Software,

输入: http://m2eclipse.sonatype.org/sites/m2e,然后按提示安装.

3) 、修改eclipse的eclipse.ini文件,便于maven使用,否则启动eclipse时会提醒异常,添加(注意是两行,不用写到一行去):

-vm

C:/Java/jdk1.6.0_17/bin/javaw.exe

2.1      嵌入式运行tomcat
1)      、在pom.xml中添加:

<plugin>

<groupId>org.codehaus.mojo</groupId>        <artifactId>tomcat-maven-plugin</artifactId>

<version>1.1</version>

<configuration><path>/</path> <port>9090</port> <uriEncoding>UTF-8</uriEncoding>   </configuration>

</plugin>

2)、新建一个MavenBuild条目:在Goals中填写: tomcat:run deploy --DskipTests,意思是让maven驱动tomcat-maven-plugin插件以启动tomcat,然以不进行测试就部署项目到tomcat上.

2.2      外部运行tomcat
1) 、首先到apache-tomcat-6.0.18\conf在其中增加一个admin用户,密码是password,角色是管理员:

<tomcat-users> <user username="admin" password="password" roles="manager"/> </tomcat-users>

2)、 启动tomcat,然后访问 http://localhost:8080/manager/html,输入admin/password,如果出现以下界面表示tomcat一切OK.

3)、 在maven的setting.xml中定义本机的tomcat,增加如下内容(记住这里的id,等会要用到):

<servers>

<server> <id>tomcat</id> <username>admin</username><password>password</password> </server>

</servers>

4)、 在Eclipse中建立一个打包类型为war的maven项目:demo,并修改pom.xml文件

格式如下:

<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/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion> <groupId>com.world</groupId>

<artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging>

<build>

<plugins> <plugin>

<groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <version>1.0-beta-1</version>

<configuration> <url>http://localhost:8080/manager/html</url> <server>tomcat</server> </configuration>

</plugin> </plugins>

</build>

</project>

//<url>标签指明tomcat的管理器地址,<server>标签指明使用的是那个服务器。

5)、 在项目中增加web.xml和一个测试文件HotDeplyTest.jsp。 HotDeplyTest.jsp内容随便写。

6)、 Demo项目,鼠标右键,Run As 选择 Maven build,在Goals中写maven命令:package tomcat:redeploy

,意思是打包,同时部署到tomcat上。

7、 点击Run按钮,注意看Console,看看有没有错误,没有错误的话,访问: http://localhost:8080/demo/HotDeployTest.jsp, ,如果出现界面,则表示一切万事大吉.

2.3      Nexus创建私服
1)、下载Nexus :http://nexus.sonatype.org/downloads/。

Nexus 是典型的java Web应用,有两种安装包,一种是包含jetty容器的Bundle包,另一种是不包含web容器的war包。

Nexus-webapp/:目录包含了Nexus 运行所需要的文件、如启动脚本、依赖jar包

Sonatype-work/:该目录包含Nexus生成的配置文件、日志文件、仓库文件。

在window操作系统,用户需要进入nexus-webpp/bin/jsw/windows-x86-32/子目录,然后直接运行nexus.bat 启动Nexus.

2)、打开http://localhost:8081/nexus/

就能看到Nexus 的界面。默认的登录用户是admin/admin123。

3)、创建仓库

仓库分四种类型:group(仓库组)、hosted(宿主)、proxy(代理)、virtual(虚拟)。

Maven 可以直接从宿主仓库下载构件,maven也可以从代理仓库下载构件,而代理仓库会间接从远程仓库下载并缓存构件。在Repositories 界面创建对应的仓库后在sonatype-work 目录下会生产一个对应的路径。比如在宿主仓库下创建一个id 为010的仓库D:/nexus1.9/sonatype-work/nexus/storage/010。

Nexus 三个重要的代理仓库,有中央仓库,Apache 快照仓库,和Codehaus 快照仓库。这三个仓库维护了成千上万的构建,全部下载到本地不切实际,所以大部分都维护了一个编录整个内容的Lucene 索引,以便提供快速和有效的搜索。

a、Apache Snapshots:这个仓库包含了来自于Apache软件基金会的快照版本。http://people.apache.org/repo/m2-snapshot-repository

b、Codehaus Snapshots:这个仓库包含了来自于Codehaus的快照版本。 http://snapshots.repository.codehaus.org/

c、Central Maven Repository :这是中央Maven仓库(发布版本)。 http://repo1.maven.org/maven2/

4)、上传构件,在创建好的仓库中有Artifat ?Upload 选项卡。上传构件的方式有两种,第一种是maven构件的,那么可以在GAV Definition 下拉列表中选择From POM ,否则就选GAV Parameters。用户需要为该构件定义一个Maven 坐标。Group,artifact,version。

5)、Nexus 权限管理

组织中使用Nexus 有一些安全性的需要,比如只有管理员才能配置nexus,某些团队成员才能部署构件,Nexus 根据需求提供了全面的权限控制特性,能让用户自由的根据需求配置Nexus用户、角色、权限。

3       参考资料
3.1      注意事项
防止MAVEN/OutOfMemoryError,需要在maven build->jre中配置:-Xms128m -Xmx512m

关于Setting的说明: 一般我们复制一个setting.xml 文件到~/.m2/目录下,~表示用户目录,在我的文档中。settting.xml用于配置一些全局性的东西,比如仓库,镜像等.

关于仓库的说明: 仓库可以分为两大类,本地仓库和远程仓库。当maven根据坐标寻找构件的时候,首先在本地仓库查找,如果本地仓库存在则直接使用,如果本地仓库不存在,或者查看是否有更新的版本,maven 则回去远程仓库查看,发现以后下载到本地仓库使用,如果都没有则会报错。私服是一种特殊的远程仓库。

关于坐标的说明:

Groupid:定义maven 项目隶属的实际项目。比如springFramework

Artifactid:定义实际项目中的一个模块。比如spring-core,spring-context

Version:版本号。2.0.0

Packageing:打包方式,.jar,.war。

Classifier:该元素用来帮组定义构件输出的一些附属构件。

其中groupid,artifactid,version 是必须定义的,packaging 是可选的,默认为jar.

3.2      Maven常用命令
   mvn archetype:create 创建Maven项目

  mvn eclipse:eclipse 生成eclipse项目文件

  mvn compile 编译源代码

  mvn test-compile 编译测试源代码

  mvn test 运行应用程序中的单元测试

  mvn site 生成项目相关信息的网站

  mvn clean 清除项目目录中的生成结果

  mvn package 根据项目生成的jar

  mvn install 在本地Respository中安装jar

mvn deploy 将包发布到服务器或远程仓库

3.3      Tomcat- Maven-Plugin常用命令
Goals available for this plugin:

Goal  Description 
tomcat:deploy  Deploy a WAR to Tomcat. 
tomcat:deploy-only  Deploy a WAR to Tomcat witjout forking the package lifecycle 
tomcat:exploded  Deploy an exploded WAR to Tomcat. 
tomcat:help  Display help information on tomcat-maven-plugin.
Call
mvn tomcat:help -Ddetail=true -Dgoal=<goal-name>
to display parameter details. 
tomcat:info  Lists information about the Tomcat version, OS, and JVM properties. 
tomcat:inplace  Deploy a WAR in-place to Tomcat. 
tomcat:list  Lists all the currently deployed web applications in Tomcat. 
tomcat:redeploy  Redeploy a WAR in Tomcat. Deploy with forcing update flag to true 
tomcat:reload  Reload a WAR in Tomcat. 
tomcat:resources  Lists JNDI resources in Tomcat. 
tomcat:roles  Lists security roles in Tomcat. 
tomcat:run  Runs the current project as a dynamic web application using an embedded Tomcat server. 
tomcat:run-war  Runs the current project as a packaged web application using an embedded Tomcat server. 
tomcat:run-war-only  Runs the current project as a packaged web application using an embedded Tomcat server without forking the package cycle. 
tomcat:sessions  Lists session information for a WAR in Tomcat. 
tomcat:shutdown  Shuts down all possibly started embedded tomcat servers. This will be automatically down through a shutdown hook or you may call this Mojo to shut them down explictly.
By default the shutdown goal is not bound to any phase. For integration tests you might want to bind it to post-integration-test. 
tomcat:start  Start a WAR in Tomcat. 
tomcat:stop  Stop a WAR in Tomcat. 
tomcat:undeploy  Undeploy a WAR from Tomcat. 




3.4      Maven-POM设置:
http://maven.apache.org/ref/3.0.4/maven-model/maven.html

3.5      Maven-Settings设置:
http://maven.apache.org/ref/3.0.4/maven-settings/settings.html
分享到:
评论

相关推荐

    jenkins实现maven项目自动部署到tomcat

    Jenkins可以通过两种方式在Windows上安装:War包方式和MSI安装程序。War包方式适用于任何操作系统,只需将war文件放入Tomcat的webapps目录下,启动Tomcat即可。MSI方式则只适用于Windows,通过安装程序直接安装,并...

    Maven3.5.4,Tomcat8.5.34 windows-X64.rar

    完成环境变量配置后,可以通过命令行启动Tomcat服务器,并使用Maven构建和部署Java Web应用。例如,使用`mvn clean package tomcat7:deploy`命令可以编译项目,打包成WAR文件,并部署到运行中的Tomcat服务器。 总结...

    maven-tomcat自动部署

    在IT行业中,Maven和Tomcat是两个非常重要的工具,分别用于项目管理和应用服务器。Maven是一个基于Java的项目管理工具,它可以帮助开发者管理和构建Java项目,而Tomcat则是一个开源的Servlet容器,广泛用于部署Java ...

    Java环境配置jdk.tomcat.maven.zip

    "Java环境配置jdk.tomcat.maven.zip"这个压缩包包含了帮助用户轻松完成Java开发环境搭建的工具,特别适合那些对环境变量配置不熟悉或者容易出错的初级用户。这个压缩包不仅涵盖了Java的JDK(Java Development Kit)...

    spring mvc+maven+tomcat+hello world

    在本文中,我们将深入探讨如何使用Spring MVC、Maven、IntelliJ IDEA和Tomcat服务器构建一个简单的"Hello World"应用程序。这个过程涵盖了Web开发的基础,特别是在Mac平台上。我们将详细解析每个步骤,确保你能够...

    [Jenkins Maven SVN Tomcat持续集成实战v2

    构建过程包括手动触发和自动触发两种方式。手动构建适用于调试和测试,而自动构建则基于源代码仓库的变更。Jenkins通过读取配置文件(如pom.xml)执行构建、测试和部署任务。 9. **自动化部署脚本** 使用Shell...

    apache-maven-3.8.5-bin.tar+apache-tomcat-8.5.78.tar

    在实际开发和运维过程中,了解如何在Linux环境中配置和管理Maven与Tomcat是非常重要的技能,这有助于提高开发效率,保证项目的稳定运行。同时,Maven的依赖管理和Tomcat的Web应用部署能力也是Java开发者必备的基础...

    使用Maven tomcat:run命令启动web项目时修改默认端口的方法

    总结来说,本文介绍了在使用Maven tomcat7-maven-plugin插件时,如何通过修改pom.xml文件和命令行参数两种方式来修改Web项目启动的默认端口。通过学习这些方法,开发者可以更加灵活地控制项目运行环境,提高开发效率...

    mavenAndTomcat

    Maven 和 Tomcat 是两种在 Java 开发中不可或缺的工具。Maven 是一个项目管理和综合工具,主要用于构建、依赖管理和项目信息管理,而 Tomcat 是一个开源的轻量级应用服务器,主要用于运行 Java Servlet 和 Java...

    crapapi-tomcat

    有两种方式:一是通过`bin`目录下的`startup.bat`(Windows)或`startup.sh`(Unix/Linux)脚本;二是使用命令行,进入`bin`目录,然后执行相应的脚本。启动成功后,可以在浏览器中输入`http://localhost:8080`,...

    maven 多war部署

    如果需要在同一个Tomcat服务器上部署多个WAR应用,可以使用Maven的Tomcat插件(maven-tomcat-plugin或tomcat7-maven-plugin)实现热部署。在每个子模块的pom.xml中添加插件配置,并设置不同的上下文路径,例如: ``...

    spring+quartz+maven项目实例

    这个实例旨在展示如何在Java应用程序中实现定时任务,支持两种运行模式,既可以直接以独立的Java程序执行,也可以在Web容器如Tomcat中运行。 【Spring框架】 Spring是一个开源的Java企业级应用开发框架,它提供了...

    maven的优缺点 项目

    maven介绍: Eclise: 缺点: Jar包: 版本管理,解决jar包冲突:删除老的jar包,保留新的jar包 不同的项目,jar包要复制一份;Users Library 羡慕yum的好处,安装软件,自动下载,自动验证,自动安装,自动测试;镜像网站 ...

    tomcat9.0.44.zip

    在描述中提到的"可直接使用,放到lib目录或者maven都可以",指的是SpringBoot项目可以两种方式使用这些jar包:一是将它们放入项目的lib目录,作为本地库使用;二是通过Maven或Gradle等构建工具管理依赖,将Tomcat ...

    maven使用总结

    热部署有两种方式: - 使用项目名。 - 不使用项目名,此时需在配置文件中设置`&lt;path&gt;/&lt;/path&gt;`。 为了实现热部署功能,需要在Eclipse IDE中配置Maven插件。具体步骤如下: - 打开Eclipse,选择`Windows` &gt; `...

Global site tag (gtag.js) - Google Analytics