zoukankan      html  css  js  c++  java
  • Maven学习教程(三)

    maven作为一个高度自动化构建工具,本身提供了构建项目的功能,下面就来体验一下使用maven构建项目的过程。

    一、构建Jave项目

    1.1、创建Jave Project

      1、使用mvn archetype:generate命令,如下所示:

    mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

    2、使用mvn archetype:create命令,如下所示:
    mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

    使用"mvn archetype:generate"命令和"mvn archetype:create"都可以创建项目,目前没有发现这两者的区别,唯一区别的地方就是发现使用"mvn archetype:generate"命令创建项目时要特别长的时间才能够将项目创建好,而使用"mvn archetype:create"命令则可以很快将项目创建出来。

    使用"mvn archetype:create"命令创建一个java项目的过程如下图所示:

    archetype:create 这个命令在maven 3.02以上的版本已经不用了, 用generate 命令代替请参考官方文档
    archetype:create Full name:org.apache.maven.plugins:maven-archetype-plugin:2.4:create This plugin goal has been deprecated:Please use the generate mojo instead

    使用"mvn archetype:generate"命令创建一个java项目的过程如下图所示:

    BUILD SUCCESS就表示项目构建成功,当在前用户目录下(即C:Documents and SettingsAdministrator)下构建了一个Java Project叫做myapp。

      构建好的Java项目的目录结构如下:

    可以看到,Maven帮我们创建的项目是一个标准的Maven项目,不过目前Maven只是帮我们生成了src/main/java(存放项目的源代码)和src/test/java(存放测试源代码)这两个目录,但实际项目开发中我们一般都会有配置文件,例如log4j.properties,所以我们还需要手动创建src/main/resources(存放项目开发中用到的配置文件,如存放log4j.properties等)和src/test/resources(存放测试时用到的配置文件),如下图所示:

    然后我们就可以将创建好的myapp项目导入到Eclipse中进行开发了,如下图所示:

    1.2、JavaProject的pom.xml文件说明

      通过Maven构建的JavaProject,在项目的根目录下都会存在一个pom.xml文件,进入myapp目录,可以看到有一个pom.xml文件,这个文件是Maven的核心。如下图所示:

    1、pom意思就是project object model。

        2、pom.xml包含了项目构建的信息,包括项目的信息、项目的依赖等。

        3、pom.xml文件是可以继承的,大型项目中,子模块的pom.xml一般都会继承于父模块的pom.xml

      pom.xml文件的内容如下:

     1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     3   <modelVersion>4.0.0</modelVersion>
     4   <groupId>com.mycompany.app</groupId>
     5   <artifactId>myapp</artifactId>
     6   <packaging>jar</packaging>
     7   <version>1.0-SNAPSHOT</version>
     8   <name>myapp</name>
     9   <url>http://maven.apache.org</url>
    10   
    11   <properties>
    12     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    13   </properties>
    14   
    15   <dependencies>
    16     <dependency>
    17       <groupId>junit</groupId>
    18       <artifactId>junit</artifactId>
    19       <version>3.8.1</version>
    20       <scope>test</scope>
    21     </dependency>
    22   </dependencies>
    23 </project>

    pom.xml文件的节点元素说明:

        <project>       pom文件的顶级节点
        <modelVersion>     object model版本,对Maven2和Maven3来说,只能是4.0.0 
        <groupId>       项目创建组织的标识符,一般是域名的倒写
        <artifactId>      定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目
        <version>        当前项目的版本,SNAPSHOT,表示是快照版本,在开发中

        <packaging>      打包的方式,有jar、war、ear等
        <name>        项目的名称
        <url>          项目的地址

        <properties>    属性配置,比如:<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <dependencies>     构建项目依赖的jar

      其中由groupId、artifactId和version唯一的确定了一个项目坐标

    1.3.3、打包

    进入命令行,切换到myapp目录,执行命令:mvn clean package,执行打包命令前,会先执行编译和测试命令,如下图所示:

    构建成功后,会在target目录下生成myapp-1.0-SNAPSHOT.jar包,如下图所示:

    1.3.4、安装

    进入命令行,切换到my-app目录,执行命令:mvn clean install ,执行安装命令前,会先执行编译、测试、打包命令,如下图所示:

    构建成功,就会将项目的jar包安装到本地仓库,如下图所示:

    1.3.5、运行jar包

      进入命令行,切换到myapp目录,执行命令:java -cp targetmyapp-1.0-SNAPSHOT.jar com.mycompany.app.App,如下图所示:

    二、构建JavaWeb项目

    2.1、创建JavaWeb项目

      1、使用mvn archetype:generate命令,如下所示:

     mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-WebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

    创建好的JavaWeb项目中目前只有src/main/resources目录,因此还需要手动添加src/main/java、src/test/java、src/test/resources

      如下图所示:

    2.2、使用Maven打包发布Web项目

    Maven帮我们创建的JavaWeb项目是一个空的项目,只有一个index.jsp页面,我们使用Maven将Web项目打包发布运行。

      在命令行切换到myWebApp目录,执行:mvn package,构建成功后,myWebApp目录目录下多了一个target目录,在这个目录下会打包成myWebApp目录.war,把这个war包拷贝到Tomcat的发布目录下就可以运行了。如下图所示:(dir查看当前目录文件)

     

    打包成功,在myWebApp arget目录下生成了一个myWebApp.war文件,如下图所示:

    将myWebApp.war放到tomcat服务器中运行,如下图所示:

    启动tomcat,

    输入访问地址:http://localhost:8080/my-WebApp/

    除了使用Tomcat服务器运行Web项目之外,我们还可以在Web项目中集成Jetty发布运行,首先在pom.xml文件中配置Jetty插件,如下:

     1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     3   <modelVersion>4.0.0</modelVersion>
     4   <groupId>com.mycompany.app</groupId>
     5   <artifactId>my-WebApp</artifactId>
     6   <packaging>war</packaging>
     7   <version>1.0-SNAPSHOT</version>
     8   <name>my-WebApp Maven Webapp</name>
     9   <url>http://maven.apache.org</url>
    10   <dependencies>
    11     <dependency>
    12       <groupId>junit</groupId>
    13       <artifactId>junit</artifactId>
    14       <version>3.8.1</version>
    15       <scope>test</scope>
    16     </dependency>
    17   </dependencies>
    18   <build>
    19     <finalName>my-WebApp</finalName>
    20     <pluginManagement>
    21         <!--配置Jetty-->
    22           <plugins>
    23             <plugin>
    24              <groupId>org.mortbay.jetty</groupId>   
    25              <artifactId>maven-jetty-plugin</artifactId>
    26             </plugin>
    27           </plugins>
    28     </pluginManagement>
    29   </build>
    30 </project>

    打开命令行窗口,切换到myWebApp目录,然后执行:mvn jetty:run启动Jetty服务器(注意启动前要把Tomcat服务关掉,防止端口占用),如下图所示:

    http://localhost:8080/my-WebApp/

    三、Maven创建项目的命令说明

      mvn archetype:create或者mvn archetype:generate       固定写法

      -DgroupId                       组织标识(包名)

      -DartifactId                     项目名称

      -DarchetypeArtifactId                  指定ArchetypeId,maven-archetype-quickstart,创建一个Java Project;maven-archetype-webapp,创建一个Web Project

      -DinteractiveMode                  是否使用交互模式

      archetype是mvn内置的一个插件,create任务可以创建一个java项目骨架,DgroupId是软件包的名称,DartifactId是项目名,DarchetypeArtifactId是可用的mvn项目骨架,目前可以使用的骨架有:

    • 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
    • maven-archetype-webapp

      每一个骨架都会建相应的目录结构和一些通用文件,最常用的是maven-archetype-quickstartmaven-archetype-webapp骨架。maven-archetype-quickstart骨架是用来创建一个Java Project,而maven-archetype-webapp骨架则是用来创建一个JavaWeb Project。

      不得不说,Maven的确是一个很好的项目构建工具。掌握好Maven对于项目开发是非常有帮助的。

    
    
    
  • 相关阅读:
    2017年暑期实习生招聘(百度)——两道编程题
    携程笔试中的一道编程题
    软工假期预习作业1
    假期作业
    FAFU 1557
    HDU 1028
    POJ 3126
    HDU5108
    POJ 1716
    HDU4790
  • 原文地址:https://www.cnblogs.com/xiaotang5051729/p/7448398.html
Copyright © 2011-2022 走看看