zoukankan      html  css  js  c++  java
  • Maven快速入门(二)手动创建maven项目hellomaven

    之前讲过Maven介绍及环境搭建,介绍了maven的作用和如何搭建maven环境。接下来就以一个helloworld的例子来说一说如何创建maven项目以及maven项目的项目结构,最后讲maven如何编译运行项目。maven快速入门系列地址:https://www.cnblogs.com/zhangweizhong/category/1771605.html

    创建Maven项目

    其实所谓创建Maven项目,说白了就是创建一个符合Maven约定的项目骨架,也就是项目目录。这些项目的目录可以手动创建,也可以用maven插件。这里我就介绍使用archetype插件自动建立目录

    首先,创建项目存放的目录(例如d:maven_project),然后打开终端或者命令行并切换到d:maven_project目录下,执行以下Maven命令:

    mvn archetype:generate -DgroupId=com.weiz.hellomaven -DartifactId=hello-maven-test -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

    参数说明

    groupId : 标识package命名空间
    artifactId: 创建的项目名称

    命令输出情况:

    Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8 -Dgroovy.source.encoding=UTF-8
    [INFO] Scanning for projects...
    .
    .省略输出
    . [INFO] Parameter: basedir, Value: D:maven_project [INFO] Parameter: package, Value: com.weiz.hellomaven [INFO] Parameter: groupId, Value: com.weiz.hellomaven [INFO] Parameter: artifactId, Value: hello-maven-test [INFO] Parameter: packageName, Value: com.weiz.hellomaven [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] project created from Old (1.x) Archetype in dir: D:maven_projecthello-m aven-test [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 4.039 s [INFO] Finished at: 2020-05-23T16:40:59+08:00 [INFO] ------------------------------------------------------------------------

    注意:如果是刚安装的Maven,第一次创建项目时可能需要一段时间,因为Maven需要从网上下载大部分最近的artifacts (plugin jars and other files)到你的本地仓库。如果失败了,再执行一次该命令即可。

    输出了“BUILD SUCCESS”时表示项目创建成功了,创建一个hello-maven-test的项目。

    Maven项目结构

    1、项目结构

    maven工程与以往的java工程目录结构有所不同,以往的java工程目录目录一般只有一个src用于存放包及java文件,而maven工程目录长这样: 

    $ MavenProject
    |-- pom.xml
    |-- src
    |   |-- main
    |   |   `-- java
    |   |   `-- resources
    |   `-- test
    |   |   `-- java
    |   |   `-- resources

    一般将java的功能代码,放在main/java下面,而测试代码放在test/java下,这样在运行时,maven才可以识别目录并进行编译。

    • src/main/java - 存放项目.java文件;
    • src/main/resources - 存放项目资源文件;
    • src/test/java - 存放测试类.java文件;
    • src/test/resources - 存放测试资源文件;
    • target - 项目输出目录;
    • pom.xml - Maven核心文件(Project Object Model)

    2、pom文件

    POM文件代表工程对象模型(Project Object Model)它是使用Maven工作的基本组件,位于工程根目录。POM文件支持继承。

    <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.weiz.hellomaven</groupId>
      <artifactId>hello-maven-test</artifactId>
      <packaging>jar</packaging>
      <version>1.0-SNAPSHOT</version>
      <name>hello-maven-test</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>

    3、maven 坐标

    maven 的所有构件均通过坐标进行组织和管理。maven 的坐标通过 5 个元素进行定义,其中 groupId、artifactId、version 是必须的,packaging 是可选的(默认为jar),classifier 是不能直接定义的。

    节点 描述
    groupId 这是工程组的标示,它在一个组织或项目中通常是唯一的,例如,上述项目中com.weiz.hellomaven拥有所有当前组织的项目。
    artifactId 当前工程标识。通常是工程的名称,如上述中的hello-maven-test。groupId和artifactId一起定位了当前项目的仓库中的位置信息
    version 工程版本号,如:com.weiz.hellomaven:hello-maven-test:1.0-SNAPSHOT

     

    编译、运行

    上面讲了项目的目录结构,已经如何创建项目,那么怎么项目怎么编译、运行呢?

    1、编译

    打开控制台,进入到新创建的工程的目录下,执行命令:mvn compile

    [INFO] Scanning for projects...
    [INFO]
    [INFO] ----------------< com.weiz.hellomaven:hello-maven-test >----------------
    [INFO] Building hello-maven-test 1.0-SNAPSHOT
    [INFO] --------------------------------[ jar ]---------------------------------.
    .省略输出
    . [INFO] Nothing to compile
    - all classes are up to date [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.923 s [INFO] Finished at: 2020-05-23T17:41:56+08:00 [INFO] ------------------------------------------------------------------------

    输出了“BUILD SUCCESS”时表示项目编译成功。项目编译成功后会在项目下生成一个target文件夹,里面存放编译后的文件。

    2、运行测试类

    编译成功后执行mvn test命令,运行测试类:mvn test

    [INFO] Scanning for projects...
    .
    省略输出
    .
    .
    ------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.weiz.hellomaven.AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.012 sec Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8 -Dgroovy.source.encoding=UTF-8 Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3.131 s [INFO] Finished at: 2020-05-23T17:53:57+08:00 [INFO] ------------------------------------------------------------------------

     输出信息里会显示单元测试的成功,失败数。

    maven常用命令

    来看一下maven几个常用的构建命令,格式为mvn xxx。

    命令 功能 备注

    mvn compile

    编译源代码 这个过程会下载工程所有依赖的jar包
    mvn clean 清理环境 清理target目录
    mvn test 执行单元测试用例  
    mvn install 安装jar包到本地仓库  
    mvn dependency:tree 树型显示maven依赖关系 用于排查依赖冲突的问题
    mvn dependency:list 显示maven依赖列表  
    mvn package 打包,将java工程打成jar包或war包  

     

     

     

     

     

     

     

     

     

     

     

    除了以上命令之外,还有之前介绍的查看maven版本的命令:mvn -v 。

    最后

    以上,用hellomaven为例,首先介绍了如何创建maven项目、然后maven项目的结构,最后将如何编译运行maven项目。是不是特别简单。虽然简单,但这是所有开发者必学必会的基础技能。请大家关注(架构师精进)!

  • 相关阅读:
    ArrayList用法
    MessageBox
    将文本文件导入Sql数据库
    在桌面和菜单中添加快捷方式
    泡沫排序
    Making use of localized variables in javascript.
    Remove double empty lines in Visual Studio 2012
    Using Operations Manager Connectors
    Clear SharePoint Designer cache
    Programmatically set navigation settings in SharePoint 2013
  • 原文地址:https://www.cnblogs.com/zhangweizhong/p/12943734.html
Copyright © 2011-2022 走看看