zoukankan      html  css  js  c++  java
  • 《从零开始搭建游戏服务器》项目管理工具Maven

    简介

    什么是Maven?Maven是一个项目管理和综合工具,提供了开发人员构建一个完整的生命周期框架。 
    Maven使用标准的目录结构和默认构建生命周期,在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作,例如:创建报表、检查、构建和测试自动化设置。概况地说,Maven简化和标准化项目建设过程,增加可重用性并负责建立相关的任务。 
    (注:Maven项目的结构和内容在一个XML文件中声明,pom.xml项目对象模型(POM),这事系统的基本单元)

    Apache Maven 是一种创新的软件项目管理工具,提供了一个项目对象模型(POM)文件的新概念来管理项目的构建,相关性和文档。最强大的功能就是能够自动下载项目依赖库。

    Maven功能:

    • 依赖库管理: 
      我们在项目开发中经常会引用一些jar包,按照往常的做法是搜索哪些是必须的然后再放到我们的项目中,比较麻烦。而maven在pom配置文件中对依赖库进行了配置,例如:使用struts2的xx版本,xx发布的,maven插件便会从中央仓库去获取相应的jar包;
    • 项目的构建: 
      例如java开发时,使用maven可以替代eclipse在创建和编译项目时的作用;
    • 项目的版本管理。

    Maven安装使用:

    1.下载安装包:

    Maven官网下载指定版本的maven安装包,例如这里我下载的是:apache-maven-3.5.4-bin.zip

    2.解压配置环境:

    直接解压安装包到指定目录(文件目录最好不带中文),打开环境变量,新建一个变量,变量名:MAVEN_HOME,变量值为压缩包解压之后的文件路径,例如: 
     
    往Path变量中添加:%MAVEN_HOME%in;,配置完成后打开命令行窗口,输入mvn -version,假如之前的配置操作成功,即如下: 

    基本操作:

    以往我们创建一个java工程都是在eclipse中完成的,如今我们可以使用maven来完成创建,步骤如下: 
    相关指令集:

    mvn archetype:generate  #创建项目指令
    mvn compile             #编译项目指令
    mvn test                #测试项目指令
    mvn clean package       #打包项目指令
    mvn clean install       #项目仓库化指令

    1.使用archetype指令来创建项目:

    mvn archetype:generate
    -DgroupId=com.test.maven(项目包名)
    -DartifactId=TestMaven(工程名)
    -DarchetypeArtifactId=maven-archetype-quickstart
    -DinteractiveMode=false

    初次创建的时候,会下载很多maven的默认包到系统盘用户数据中的Administrator/.m2 epository目录下: 
     

    问题:假如你和我一样在创建文件的时候,出现了卡在Generating Project in Batch mode的问题,那是因为创建项目时需要下载一个4.1M左右的archetype-catalog.xml文件

    优化方案:假如要加快这个过程,可以直接到http://repo.maven.apache.org/maven2/archetype-catalog.xml下载此文件然后放到本地Administrator.m2 epositoryorgapachemavenarchetypearchetype-catalog3.0目录下,创建项目指令最后添加一个-DarchetypeCatalog=local即可。

    创建成功,可以看到: 
     
    创建出来的目录结构如下:

    TestMaven
       |-src
       |---main
       |-----java
       |-------com
       |---------test
       |-----------maven
       |-------------App.java
       |---test|-----java
       |-------com
       |---------test
       |-----------maven
       |-----------AppTest.java
       |-pom.xml

    2.编译运行:

    打开pom.xml文件,可以看到里面的<dependencies></dependencies>依赖集合中添加了一个测试用的junit3.8.1版本的测试包配置信息:

    <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.test.maven</groupId>
      <artifactId>TestMaven</artifactId>
      <packaging>jar</packaging>
      <version>1.0-SNAPSHOT</version>
      <name>TestMaven</name>
      <url>http://maven.apache.org</url>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </project>

    在命令行窗口进入到刚刚创建的TestMaven项目目录下,使用编译指令进行编译:

    mvn compile

    编译结束后会在当前目录下生成一个target文件夹,里面有编译.java源码得到的.class文件,而且Administrator.m2 epository文件夹会多出一个junit的目录,pom.xml中配置的相应版本的jar依赖包会被下载到此目录下: 
     
    使用测试指令进行测试运行:

    mvn test

    3.打包:

    假如我们先修改一下AppTest.java入门函数testApp()的内容,加入一个打印代码:

        public void testApp()
        {
            assertTrue( true );
            System.out.println("hello maven");
        }

    在当前项目目录下运行打包指令:

    mvn clean package

    执行此指令完成了几个操作:

    • 清理目标目录(clean);
    • target目录下会生成一个打包项目得到的TestMaven-1.0-SNAPSHOT.jar目标文件(带SNAPSHOT表示不稳定版本);
    • 生成测试报告到targetsurefire-reports目录;
    • Maven编译源码,并运行测试用例。

    4.将项目当做Maven的本地仓库:

    假设通过maven创建的项目已经打包并已测试没问题,又想在其他项目使用本项目的功能,可以通过maven指令将此项目变为本地仓库,指令如下:

    mvn clean install

    指令运行之后,在Administrator.m2 epository文件夹会增加此项目的目录,其他项目需要用到本项目功能,只需要通过从Maven本地仓库提取jar包即可。

  • 相关阅读:
    1136 A Delayed Palindrome (algorithm reverse(ans.begin,ans.end))
    1141 PAT Ranking of Institutions PAT甲级
    最近点对 (迭代器访问数据)
    1146 Topological Order PAT 甲级
    1151 1151 LCA in a Binary Tree PAT 甲级
    jQuery的基本使用
    案例:移动端返回顶部效果
    移动端轮播图(原生JS写法)
    移动端特效
    本地存储
  • 原文地址:https://www.cnblogs.com/KylinBlog/p/9263059.html
Copyright © 2011-2022 走看看