• 近期将进行后台系统升级,如有访问不畅,请稍后再试!
  • 极客文库-知识库上线!
  • 极客文库小编@勤劳的小蚂蚁,为您推荐每日资讯,欢迎关注!
  • 每日更新优质编程文章!
  • 更多功能模块开发中。。。

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 项目的过程如下图所示:
  
  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 文件的内容如下:
3   <modelVersion>4.0.0</modelVersion>
4
5   <groupId>com.mycompany.app</groupId>
6   <artifactId>myapp</artifactId>
7   <version>1.0-SNAPSHOT</version>
8   <packaging>jar</packaging>
9
10   <name>myapp</name>
11   <url>http://maven.apache.org</url>
12
13   <properties>
14     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15   </properties>
16
17   <dependencies>
18     <dependency>
19       <groupId>junit</groupId>
20       <artifactId>junit</artifactId>
21       <version>3.8.1</version>
22       <scope>test</scope>
23     </dependency>
24   </dependencies>
25 </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、使用 Maven 编译-测试-打包-安装项目

1.3.1、编译

  编译源程序,进入命令行,切换到 myapp 目录,执行命令:mvn clean compile,如下图所示:
  
  编译成功,在 myapp 目录下多出一个 target 目录,targetclasses 里面存放的就是编译后的 class 文件,如下图所示:
  

1.3.2、测试

  进入命令行,切换到 myapp 目录,执行命令:mvn clean test,如下图所示:
  
  测试成功,在 myapptarget 目录下会有一个 test-classes 目录,存放的就是测试代码的 class 文件,如下图所示:
  

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
使用”mvn archetype:generate“命令创建一个 javaWeb 项目的过程如下图所示:  
  
  使用”mvn archetype:generate“命令创建一个 javaWeb 项目的时间非常长,要了 40 多秒,有时甚至会更久,不知道为啥。
  2、使用mvn archetype:create命令,如下所示:
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=myWebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
使用”mvn archetype:create“命令创建一个 javaWeb 项目的过程如下图所示:  
  
  使用”mvn archetype:create“命令创建一个 javaWeb 项目的时间非常快,几秒钟就可以了。
  创建好的 JavaWeb 项目的目录结构如下:
  
  创建好的 JavaWeb 项目中目前只有 src/main/resources 目录,因此还需要手动添加 src/main/java、src/test/java、src/test/resources
  如下图所示:
  
  接着我们就可以将创建好的 JavaWeb 导入 Eclipse 中进行开发了,如下图所示:
  

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

  Maven 帮我们创建的 JavaWeb 项目是一个空的项目,只有一个 index.jsp 页面,我们使用 Maven 将 Web 项目打包发布运行。
  在命令行切换到 myWebApp 目录,执行:mvn package,构建成功后,myWebApp 目录目录下多了一个 target 目录,在这个目录下会打包成 myWebApp 目录.war,把这个 war 包拷贝到 Tomcat 的发布目录下就可以运行了。如下图所示:
  
  
  打包成功,在 myWebApptarget 目录下生成了一个 myWebApp.war 文件,如下图所示:
  
  将 myWebApp.war 放到 tomcat 服务器中运行,如下图所示:
  
  运行效果如下:
  
  除了使用 Tomcat 服务器运行 Web 项目之外,我们还可以在 Web 项目中集成 Jetty 发布运行,首先在 pom.xml 文件中配置 Jetty 插件,如下:
3   <modelVersion>4.0.0</modelVersion>
4   <groupId>com.mycompany.app</groupId>
5   <artifactId>myWebApp</artifactId>
6   <packaging>war</packaging>
7   <version>1.0-SNAPSHOT</version>
8   <name>myWebApp 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>myWebApp</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 服务器,如下图所示:
  
  
  接着就可以在 8080 端口上访问应用了。如下图所示:
  

三、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 对于项目开发是非常有帮助的。

丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:Maven 学习总结-构建项目
喜欢 (0)
[247507792@qq.com]
分享 (0)
勤劳的小蚂蚁
关于作者:
温馨提示:本文来源于网络,转载文章皆标明了出处,如果您发现侵权文章,请及时向站长反馈删除。

欢迎 注册账号 登录 发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00