ths0201

每次遇到Maven项目的搭建,就要去思考整个流程或者去翻翻之前的项目来找回点记忆 POM文件节点配置、仓库等,这次记录下Maven目的整体搭建流程。

1.先来介绍下什么是Maven(摘自百度百科)?

   Maven是Apache的一个顶级的项目:http://maven.apache.org/

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

   Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行     定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者     自定义的)插件。

   Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认         的 插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。
   此外,Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。
   如果还想具体详细的了解,可查阅百度或google上查找,这些文章有好多好多。
 
2.Maven的基础知识
   POM是指Project Object Model。POM是一个xml,在Maven里为pom.xml。是Maven工作的基础,在执行task或者goal时,Maven会去项目目录下读取pom.xml获得需要的配置信息。
   POM文件中包含了项目的信息喝maven build项目所需的配置信息,通常有项目信息(如版本、成员)、项目的依赖、插件和goal、build选项等。
   POM是可以继承的,通常对于一个大型的项目或是多个module的情况,子模块的POM需要指定模块的POM。
   
   POM文件中节点含义
   可以参考maven官网的文档,如下:
   

 

      进入此界面后点击What is the POM?

Quick Overview:

      
<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <!-- The Basics -->
  <groupId>...</groupId>
  <artifactId>...</artifactId>
  <version>...</version>
  <packaging>...</packaging>
  <dependencies>...</dependencies>
  <parent>...</parent>
  <dependencyManagement>...</dependencyManagement>
  <modules>...</modules>
  <properties>...</properties>
 
  <!-- Build Settings -->
  <build>...</build>
  <reporting>...</reporting>
 
  <!-- More Project Information -->
  <name>...</name>
  <description>...</description>
  <url>...</url>
  <inceptionYear>...</inceptionYear>
  <licenses>...</licenses>
  <organization>...</organization>
  <developers>...</developers>
  <contributors>...</contributors>
 
  <!-- Environment Settings -->
  <issueManagement>...</issueManagement>
  <ciManagement>...</ciManagement>
  <mailingLists>...</mailingLists>
  <scm>...</scm>
  <prerequisites>...</prerequisites>
  <repositories>...</repositories>
  <pluginRepositories>...</pluginRepositories>
  <distributionManagement>...</distributionManagement>
  <profiles>...</profiles>
</project>

The Basics:

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>my-project</artifactId>
  <version>1.0</version>
</project>

      project:

      POM文件的顶级元素;任何你想build的事务,Maven都会把它当作是一个Project;这些Project被定义为POM(Project Object Model);一个Project可以依赖其它的Project,一个project也可以

      有多个子project组成;

      modelVersion:

      所使用的object model版本,为了确保稳定的使用,这个元素是强制性的。除非maven开发升级模板,否则不需要修改

      groupId:

       是项目创建团体和项目的唯一标志符,通常是域名倒写

       如:com.google   或者   com.google.mavenproject

      artifactId:

      是项目artifactId唯一的基地址名,通常指的是项目名或者模块名

      如:mavenproject  或者 mavenproject-core

      version:

      artifact的版本,通常能看见类似0.01-SNAPSHOT,其中SNAPSHOT表示项目开发中,为开发版本

      packaging:

      artifact打包的方式,如jar、war、ear等等。默认为jar。这个不仅表示项目最终产生何种后缀的文件,也表示build过程使用什么样的lifecycle

      name:

      表示项目的展现名,在maven生成的文档中使用

      url:

      表示项目的地址,在maven生成的文档中使用,通常不用

      description:

      表示项目的描述,在maven生成的文档中使用

      dependencies:

      表示依赖,在子节点dependencies中添加具体依赖的groupId、artifactId 和 version 

      Maven在搭建工程时主要是编写依赖,编写依赖就是从官网上复制

      build:

      表示build配置

      parent:

      表示父POM

3. Repositories---仓库

        Repositories是用来储存Artifact的。如果说我们的项目产生的Artifact是一个小工具,那么Repositories就是一个仓库,里面有我们自己创建的工具,也可以储存别人造的工具,我们在项目中需要使用某种

        工具时,在POM中声明dependency,编译代码时就会根据dependency去下载工具(Artifact),供自己使用。

             对于自己的项目完成后可以通过mvn install 命令将项目放到仓库(Repositories)中

             仓库分为本地仓库和远程仓库,远程仓库就是指远程服务器上用于储存Artifact的仓库,

             本地仓库是指本机存储Artifact的仓库,对于windows机器本地仓库地址为系统用户的

             。m2/repository下面。

        官网仓库 地址:http://mvnrepository.com/,进入官网之后,我们先选择junit4的jar包做为测试使用,如下界面:

 

 点击进入之后,左侧标记为时junit4的版本,根据自己的所需,去选择所需要的版本,右侧标记为下载和使用的次数,如下:

我是选择使用2.5.1版本,做为举例:

复制以下依赖完整格式内容到POM.xml,更改groupId 、artifactId为本公司的

<dependency>
    <groupId>org.jmock</groupId>
    <artifactId>jmock-junit4</artifactId>
    <version>2.5.1</version>
    <scope>test</scope>
</dependency>

一个依赖(dependency)的声明可以包含以下元素:

 

4.Maven构建的生命周期

 

5.Maven项目的目录结构

 

6.通过该链接http://maven.apache.org/download.cgi ,下载并安装maven的仓库,我下载到本地磁盘为apache-maven-3.5.3-bin.zip,解压出来为apache-maven-3.5.3,

   因为我是解压在D盘,所以接下来就是配置环境变量 MAVEN_HOME 、path,如下:

   

 

环境变量配置完毕后,通过黑窗口进行测试,cmd    mvn -version,看是否是安装成功,如果展示的是以下界面,证明已经成功;

然后打开apache-maven-3.5.3中的conf中的settings.xml文件,去设置本地的仓库位置,我是设置在D盘

 7.准备完毕之后,我们就准备使用Eclipse新建maven项目

    7.1选择工作空间,如下:

  

    7.2根据自己的项目版本,选取已安装的JDK版本,我本地版本使用的是1.7版本,如下:

         

     7.3调整字符编码格式,默认UTF-8,及Maven本地仓库设置,上边我们配置过的Repositories,您设置的位置是在哪里,就配置在哪里就好

    7.4配置完毕,新建一个maven工程,依照下列步骤进行操作:

 maven工程分为java工程和web工程,目前默认选择为quickstart,是java工程

,

以下为,根据自己的项目及公司项目版本及名称去定义

新建完成后的项目:

为了进行我们下边的项目,目录结构中需要新增resources,删除App.java,新建我们自己的HelloMaven类和HelloMaven测试类,

新建自动生成测试类的快捷方法如下:先选中HelloMaven类,然后Ctrl+N,输入junit,选择JUnit Test Case,然后更换Source folder的路径到test下,再次确认Package名称是否一致

 

首先我们先来测试一下,我们的测试类:

点着testMa1()这个方法,右键,选择Run As,JUnit Test测试:

 

出现上述颜色,证明JUnit测试出现错误,更改里边的期望值为jsp,重新做测试为:

 

目前来讲目录结构暂时也齐全了,接下来我们来配置pom.xml文件,pom.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>

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

  <groupId>com.juancash.maven</groupId>
  <artifactId>maven-01</artifactId>
  <version>1.0</version>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

然后点着项目名称maven-01,右键Run As选择Maven test,出现以下界面证明成功:

 

 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

根据目前以上的,Maven java项目的搭建算是结束了,以下为扩充内容:maven项目打成jar包,放置在仓库中用于新的项目,做为引用 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 8.把项目打成jar包放入仓库,并新建项目去引用该jar包

点击项目maven-01项目,右键Run As选择Maven install,如果Console出现BUILD SUCCESS,证明已经成功,并查看以下位置,确认是否真的已成功

查看本地仓库:

如果以上完成,证明已经成功讲项目打成jar包。

2.新建第二个项目maven-02,并把该jar包引入,下面讲述怎么引入jar包,修改pom.xml中的配置就ok了:

 

 然后新建一个类,去确定是否已经引入了成功

 

 

 通过Console显示,证明已成功。

 

分类:

技术点:

相关文章: