Maven目录结构

    
    src:程序源代码
        -main
            -java:java代码
                -package:自定义的包
            -resources:存放资源文件
            -webapp:如果是web工程的话,还需要这个文件夹
            -WEB-INF:class文件
        -test:测试代码
            -java
                -package
 
 
 

一个比较原始的写法,就是使用纯文本编辑器,按照maven约定好的目录,进行创建
当然,我会使用IDEA进行工程的创建
这里为了演示使用,我会首先创建一个空的maven工程,IDEA会根据maven约定创建基本的目录结构
如果有哪个文件夹没有创建,则可以自己创建
 
java工程的
目录结构如下
 
编写源代码:
D:\GitHub\JavaWeb\Web\S2S3H3I2\HelloMaven\src\main\java\com\imooc\maven01\model\HelloWorld.java
  1. package com.imooc.maven01.model;
  2. /**
  3. * 测试 HelloWorld
  4. * Created by sherry on 2015/10/21 0021 22:37.
  5. */
  6. publicclassHelloWorld{
  7. /**
  8. * Hello World
  9. * @return
  10. */
  11. publicString sayHello(){
  12. return"Hello World!";
  13. }
  14. }
编写POM文件
D:\GitHub\JavaWeb\Web\S2S3H3I2\HelloMaven\pom.xml
 
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <projectxmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <groupId>org.zln.test</groupId>
  7. <artifactId>HelloWorld</artifactId>
  8. <packaging>pom</packaging>
  9. <version>1.0-SNAPSHOT</version>
  10. <!--导入依赖-->
  11. <dependencies>
  12. <!--junit依赖-->
  13. <dependency>
  14. <groupId>junit</groupId>
  15. <artifactId>junit</artifactId>
  16. <version>4.11</version>
  17. <scope>test</scope>
  18. </dependency>
  19. </dependencies>
  20. <properties>
  21. <!--指定文件编码-->
  22. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  23. </properties>
  24. <build>
  25. <plugins>
  26. <plugin>
  27. <!--配置jdk编译版本-->
  28. <groupId>org.apache.maven.plugins</groupId>
  29. <artifactId>maven-compiler-plugin</artifactId>
  30. <version>2.0.2</version>
  31. <configuration>
  32. <source>1.8</source>
  33. <target>1.8</target>
  34. </configuration>
  35. </plugin>
  36. <plugin>
  37. <!--源代码打包-->
  38. <groupId>org.apache.maven.plugins</groupId>
  39. <artifactId>maven-source-plugin</artifactId>
  40. <version>2.4</version>
  41. <executions>
  42. <execution>
  43. <!--指定运行source的阶段-->
  44. <phase>package</phase>
  45. <!--目标-->
  46. <goals>
  47. <goal>jar-no-fork</goal>
  48. </goals>
  49. </execution>
  50. </executions>
  51. </plugin>
  52. </plugins>
  53. </build>
  54. </project>
 
 
执行编译编码
进入到POM所在的路径,也就是项目的根路径
执行:mvn compile
自动创建如下目录,并生成class文件
D:\GitHub\JavaWeb\Web\S2S3H3I2\HelloMaven\target\classes\com\imooc\maven01\model\HelloWorld.class
编译过程中的日志信息如下:
  1. D:\GitHub\JavaWeb\Web\S2S3H3I2\HelloMaven>mvn compile
  2. [INFO]Scanningfor projects...
  3. [INFO]
  4. [INFO]------------------------------------------------------------------------
  5. [INFO]Building maven01-model 1.0-SNAPSHOT
  6. [INFO]------------------------------------------------------------------------
  7. [INFO]
  8. [INFO]--- maven-resources-plugin:2.6:resources (default-resources)@ maven01-model ---
  9. [INFO]Using'UTF-8' encoding to copy filtered resources.
  10. [INFO]Copying0 resource
  11. [INFO]
  12. [INFO]--- maven-compiler-plugin:2.5.1:compile (default-compile)@ maven01-model ---
  13. [INFO]Nothing to compile - all classes are up to date
  14. [INFO]------------------------------------------------------------------------
  15. [INFO] BUILD SUCCESS
  16. [INFO]------------------------------------------------------------------------
  17. [INFO]Total time:1.080s
  18. [INFO]Finished at:WedOct2122:56:29 CST 2015
  19. [INFO]FinalMemory:6M/184M
  20. [INFO]------------------------------------------------------------------------
 
编写测试代码
D:\GitHub\JavaWeb\Web\S2S3H3I2\HelloMaven\src\test\java\com\imooc\maven01\model\HelloWorldTest.java
  1. package com.imooc.maven01.model;
  2. import org.junit.*;
  3. import org.junit.Assert.*;
  4. publicclassHelloWorldTest{
  5. @Test
  6. publicvoid testSayHello()throwsException{
  7. Assert.assertEquals("Hello World!",newHelloWorld().sayHello());
  8. }
  9. }
 
执行测试命令
mvn test
 
打包
mvn package
 
 
 
 
 

第一个Maven案例Hello Maven的更多相关文章

  1. 新版本IntelliJ IDEA 构建maven,并用Maven创建一个web项目

    之前都没试过用maven来管理过项目,但是手动找包导包确实不方便,于是今天用2016版的IDEA进行了maven的初尝试. 打开IDEA,创建新项目: 然后选择Maven,以及选择自己电脑的jdk: ...

  2. 2.Maven特点,Maven约定,建立第一个Maven项目

     1 Maven是跨平台的项目管理工具.主要服务于基于java平台的项目构建,依赖管理和项目信息管理. 项目构建 清理à编译à測试à报告à打包à部署 理想的项目构建: 高度自己主动化 跨平台 可重 ...

  3. Maven实战:Maven生命周期

    前言 之前有写过一篇文章Maven实战,介绍了Maven的一些基本概念,以及对于一个初学者而言的Maven基础知识,当时在我看来掌握了这些基本是够用的. 随着工作的深入,越来越感觉对于Maven的理解 ...

  4. maven之一:maven安装和eclipse集成

    maven作为一个项目构建工具,在开发的过程中很受欢迎,可以帮助管理项目中的bao依赖问题,另外它的很多功能都极大的减少了开发的难度,下面来介绍maven的安装及与eclipse的集成. maven的 ...

  5. Maven进价:Maven构建系列文章

    Maven:基于Java平台的项目构建.依赖管理和项目信息管理. 1.构建 Maven标准化了构建过程 构建过程:编译.运行单元测试.生成文档.打包和部署 避免重复:设计.编码.文档.构建 2.依赖管 ...

  6. 4.Maven概念模型,maven的生命周期,Maven坐标,依赖管理(依赖范围,依赖声明),仓库管理,私服概念

     1 maven概念模型 2 maven的生命周期,项目构建过程 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg== ...

  7. maven系列之一maven安装和与IDE集成

    第一部分:maven的基本信息和安装,配置  maven是一个项目构建和管理的工具,提供了帮助管理 构建.文档.报告.依赖.scms.发布.分发的方法.可以方便的编译代码.进行依赖管理.管理二进制库等 ...

  8. Maven学习(1) - Maven入门

    home index:http://maven.apache.org/ download:http://maven.apache.org/download.cgi install: http://ma ...

  9. eclipse创建Maven父子结构Maven项目

    1.创建聚合模块 选择菜单项 File—>New—>Other,在弹出的对话框中选择Maven下的Maven Project,然后单击Next按钮,在弹出的New Maven Projec ...

随机推荐

  1. python脚本执行报错:SyntaxError: Non-ASCII character '\xe6' in file ip.py on line 4...

    报错信息 [root@chenbj ~]# python ip.py 192.168.1.1 File "ip.py", line 4 SyntaxError: Non-ASCII ...

  2. SpringMVC+Hibernate框架快速搭建

    1.  新建Maven项目springmvc 2.   pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" ...

  3. Java构造方法经典例题

    1.在程序中,经常要对时间进行操作,但是并没有时间类型的数据.那么,我们可以自己实现一个时间类,来满足程序中的需要. 定义名为MyTime的类,其中应有三个整型成员:时(hour),分(minute) ...

  4. java基础面试题:请说出作用域public,private,protected,以及不写时的区别

    不写任何作用域(即访问权限)表示friendly public 公共,权限最大,作用域最大,在类内部.同一package.子孙类.其他package都可以访问 protected保护,在类内部.同一p ...

  5. ES6 Reflect使用笔记

    Reflect Reflect 对象和Proxy对象一样, 为操作对象提供了新的API. 为什么使用 Reflect的方式来操作对象? 将 Object 对象上一些明显属于内部的方法放到 Reflec ...

  6. Arguments Optional-freecodecamp算法题目

    Arguments Optional 1.要求 创建一个计算两个参数之和的 function.如果只有一个参数,则返回一个 function,该 function 请求一个参数然后返回求和的结果. 如 ...

  7. redis 设置密码验证

    1.找到配置文件:如/etc/redis/redis.conf 2.找到以下内容 # requirepass foobared 3.修改为(redispassword是密码) requirepass ...

  8. DNS服务初步搭建

    一.准备DNS服务环境 选择 bind dns服务软件包 直接yum安装 bind 和 bind-utils 工具包,测试机器安装bind-utils测试工具包. 服务程序名为 named 二.配置D ...

  9. POJ 2299 Ultra-QuickSort 简单题解

    Ultra-QuickSort Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 68874   Accepted: 25813 ...

  10. django之路由分发

    路由分发决定哪一个路由由哪一个视图函数来处理. 注意:django2.0里的re_path和django1.0里的url除了名字不一样,其他都一样. 简单配置 from django.urls imp ...