第一个Maven案例Hello Maven

Maven目录结构

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

一个比较原始的写法,就是使用纯文本编辑器,按照maven约定好的目录,进行创建
当然,我会使用IDEA进行工程的创建
这里为了演示使用,我会首先创建一个空的maven工程,IDEA会根据maven约定创建基本的目录结构
如果有哪个文件夹没有创建,则可以自己创建
 
java工程的
目录结构如下
 
编写源代码:
D:GitHubJavaWebWebS2S3H3I2HelloMavensrcmainjavacomimoocmaven01modelHelloWorld.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:GitHubJavaWebWebS2S3H3I2HelloMavenpom.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:GitHubJavaWebWebS2S3H3I2HelloMaven argetclassescomimoocmaven01modelHelloWorld.class
编译过程中的日志信息如下:
  1. D:GitHubJavaWebWebS2S3H3I2HelloMaven>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:GitHubJavaWebWebS2S3H3I2HelloMavensrc estjavacomimoocmaven01modelHelloWorldTest.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
 
 
 
 
 





原文地址:https://www.cnblogs.com/sherrykid/p/4929247.html