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. IOS UITextFieldDelegate (常用的代理方法)

    #pragma mark - UITextFieldDelegate // 返回NO代表着文本输入框不可以改变(不可以编辑) - (BOOL)textField:(UITextField *)text ...

  2. UVA 10375 Choose and divide(大数的表示)

    紫上给得比较奇怪,其实没有必要用唯一分解定理.我觉得这道题用唯一分解只是为了表示大数. 但是分解得到的幂,累乘的时候如果顺序很奇怪也可能溢出.其实直接边乘边除就好了.因为答案保证不会溢出, 设定一个精 ...

  3. noip模拟赛#23

    T1:n个元素的集合.要求取出k个子集,使得k个子集交集为空集.问有多少中取法. =>推了很久...想的是从k等于2的情况推到k等于3的情况....然后k=2推出来了k=3也推出来了...推了挺 ...

  4. Using Autorelease Pool Blocks

    https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmAut ...

  5. 【BZOJ4033】[HAOI2015] 树上染色(树形DP)

    点此看题面 大致题意: 给你一棵点数为N的带权树,要你在这棵树中选择K个点染成黑色,并将其他的N-K个点染成白色.要求你求出黑点两两之间的距离加上白点两两之间距离的和的最大值. 树形\(DP\) 这道 ...

  6. python实现二叉树的镜像

    题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...

  7. theano支持的数组、向量、矩阵表达式

    1)theano主要支持符号矩阵表达式 (2)theano与numpy中都有broadcasting:numpy中是动态的,而theano需要在这之前就知道是哪维需要被广播.针对不同类型的数据给出如下 ...

  8. js字符串的使用

    Javascript的内置功能之一就是字符串连接,如果+号用于两个字符串连接 var s="hello,world"       //想要查找给定位置的字符       s.cha ...

  9. 前端小记6——项目中常用的ES6方法

    现在很多功能用es5的方法也能实现功能,但es6提供的方法显得更为高效.记录下目前常用的几个方法. 1.字符包含 通过str.includes('a')来判断, 若str中包含a则结果为true,否则 ...

  10. 前端-带header和footer的双栏布局

    目标是实现如上图带header和footer的双栏布局,其中右侧sidebar是固定宽度,左侧content是自适应: https://www.zybuluo.com/dengzhirong/note ...