RSS订阅欢迎来到Java程序员学习天地!
你的位置:首页 » 架构 » 正文

maven工具的使用

选择字号: 超大 标准 发布时间:2017年05月19日 | 作者:amour505 | 0个评论 | 108人浏览


Maven是一个开源的项目管理工具,在apache开源组织网站可以下载。由于公司最新产品使用到了maven进行项目管理,而且之前的项目架构中没有用过,对于公司内部多数人来说,或许听说过,但使用的频率不高,为了方便部署新产品,老司机在此贡献一些秘籍,供各位宝宝修炼。

Maven是基于项目对象模型(POM),通过描述信息来管理项目的构建,报告和文档的软件项目管理工具。在我们目前的项目中,主要用于管理项目构建。当我们使用Maven时,会用一个明确定义的项目对象模型来描述项目,之后Maven就可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

目前,绝大多数开发人员都把 Ant 当作 Java 编程项目的标准构建工具。遗憾的是,Ant 的项目管理工具(作为 make 的替代工具)不能满足绝大多数开发人员的需要。通过检查 Ant 构建文件,很难发现项目的相关性信息和其它元信息(如开发人员/拥有者、版本或站点主页)。

Maven 除了以程序构建能力为特色之外,还提供 Ant 所缺少的高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目,而使用 Ant 则需要十几行。事实上,由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目现在使用 Maven,而且我们公司目前授信融资新产品主要是使用 Maven 进行项目管理。

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.

Maven的基本功能:

  • 构建:比如生成class、jar、war或者ear文件

  • 生成文档:比如生成javadoc、网站文档

  • 生成报告:比如junit测试报告

  • 生成依赖类库:生成文档,说明项目多其他软件的依赖

  • 有关SCM:SCM(Software Configuration Management),软件配置管理,比如版本控制,比如bug管理等等

  • 发布:生成供发布的分发包,比如生成Struts2的分发包,供提交给用户使用

  • 部署:比如,web应用程序,自动部署到指定的服务器上

    Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。

    此外,Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。

    常用的命令:

    mvn archetype:create 创建Maven项目

    mvn compile 编译源代码

    mvn deploy 发布项目

    mvn test-compile 编译测试源代码

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

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

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

    mvn package 根据项目生成的jar

    mvn install 在本地Repository中安装jar

    mvn eclipse:eclipse 生成eclipse项目文件

    mvnjetty:run 启动jetty服务

    mvntomcat:run 启动tomcat服务

    mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,跳过测试类

    Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

    Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

    Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。

.安装Maven

将下载好的压缩包,加压到指定目录,我的解压到E盘根目录下,以此为例进行介绍:

我的解压到:D:\apache-maven-3.2.2-bin\apache-maven-3.2.2然后配置path etc环境变量

1点击环境变量

图1

2点击图3中的新建按钮

图3

3给Maven起一个变量名M2_HOME,然后输入Maven的解压(安装)路径

图4

4找到path变量,双击之后在path变量后添加如下内容

图5

5验证是否安装正确

运行cmd命令(打开dos窗口),输入mvn –version然后看到图6中的信息,或者红色标记的3.2.2说明已经安装成功了。

 

注意:

安装Maven主要是为了以后使用Maven命令(Maven的一些生命周期),如果你不在dos里使用Maven命令的话也可以省略“步骤2(安装Maven)”,只需要解压一下放到指定位置即可。

在 eclipse 中安装 maven 插件

由于有一些eclipse自身带有maven插件,所以先做一个检查,如果没有再安装该插入。

检查方法:

Window  -->  Preferences

如果没有图片红色部分,就进行安装。

下载eclipse-maven-plugin.zip,附链接:http://pan.baidu.com/s/1bnhQzoj

解压压缩包,分别将features和plugins文件夹中的jar包拷贝到eclipse安装目录对应的文件夹中。

重启eclipse,再次检查。

配置 maven:

  1. 点击 Add 按钮,选到你本机安装 maven 的路径值

 

 

2.  Maven->user  setting点击 Browse 按钮,选到你 maven 的 setting.xml 配置文件,然后点击 OK,这样就完成了 eclipse maven 插件的配置

 

 

 

Maven项目管理工具服务端安装

如果在公司里使用Maven,通常应该在本地架设一个Maven资源仓库服务器,在代理远程资源仓库的同时维护本地资源仓库。

第一步: 下载Nexus

http://nexus.sonatype.org/downloads/下载最新版本的Nexus

如:http://nexus.sonatype.org/downloads/nexus-oss-webapp-1.9.2.4-bundle.zip

前面说已经安装JDK1.6这是nexus所依赖的

解压 到目录 D:\nexus\nexus-oss-webapp-1.9.2.4

Nexus安装目录总有一个兄弟目录,名为“sonatype-work”。这个目录包含有所有资源库和Nexus的配置信息。

第二步:运行服务器

进入到以下目录位置:

D:\nexus\nexus-oss-webapp-1.9.3.4\bin\jsw

windows系统下,选择自己机器32位还是64

运行Nexus.bat打开

黑屏下没有报错信息就说明启动成功,默认端口号为0.0.0.0:8081

启动以后,Nexus将处于运行状态并在8081端口上监听为当前主机配置的所有IP地址(0.0.0.0)。要使用Nexus,首先打开一个浏览器,键入URLhttp://localhost:8081/nexus。(也可用127.0.0.1或其他配置的IP地址)。这时会打开Nexus的初始欢迎界面。

点击右上方,log in 弹出登录框,默认的用户名:admin ,密码 admin123

第三步:添加索引

在左侧栏中,选择【Repositories】,右侧会打开用户管理的资源列表。找到上述的三个远程资源库,在下方的属性窗口,将“Download Remote Indexes”设为“true”,并保存修改。

Apache Snapshots

Codehaus Snapshosts

Maven Central

Nexus能够将多个仓库,hosted或者proxy合并成一个group,这样,Maven只需要依赖于一个group,便能使用所有该group包含的仓库的内容。

Nexus预定义了“Public Repositories”仓库组,默认合并所有预定义的Release仓库。

点击列表中的“Public Repositories”,然后选择下方的"Configuration" Tab,在配置面板中,将右边“Avaiable Repositories”中的资源库移动到左边的“Ordered Group Repository”

如果我们调整Nexus用于局域网内部开发,我们应该配置一个单一的Nexus组,让它包含releasesnapshot。要达到这个目的,添加snapshot资源库到我们的公共组(public group),并向Maven的设置文件~/.m2/settings.xml中(Maven 3.2.2MAVEN安装目录\conf\settings.xml)添加如下的镜像配置:

<settings>
  <mirrors>
    <mirror>
      <!--This sends everything else to /public -->
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://服务器IP地址:8081/nexus/content/groups/public</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <id>nexus</id>
      <!--Enable snapshots for the built in central repo to direct -->
      <!--all requests to nexus via the mirror -->
      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <!--make the profile active all the time -->
    <activeProfile>nexus</activeProfile>
  </activeProfiles>
< /settings>

这样配置以后,让团队中所有开发者都指向Nexus中的Public Repository,以后不管我们怎样调整Nexus中的资源库,都不需要团队中的开发者改变他们的本地配置。而管理者对团队应该使用哪个/哪些资源就有了更多地控制。


标签:maven架构

额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

控制面板
您好,欢迎到访网站!
随机文章
热门文章
热评文章
最近发表