Maven学习

来源:互联网 发布:知乎周刊kindle推送 编辑:程序博客网 时间:2024/05/20 20:58

第一个maven项目

第一步,我们建立一个目录,起名字叫做maven-c01

第二步,在maven-c01目录中touch一个文件pom.xml,并且写入如下内容

<?xml version="1.0" encoding="UTF-8"?><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/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>org.mvn.test</groupId> <!-- 一般是公司,组织,与package无关 -->  <artifactId>project_01</artifactId> <!-- 一般是项目名称 -->  <version>0.0.1-SNAPSHOT</version></project>

第三步,在maven-c01下建立目录,如下

mkdir –p src/main/java/org/mvn/test

mkdir –p src/main/test

第四步,进入/main/java/org/mvn/test目录,touch Hello.java文件,然后写入如下内容

package org.mvn.test;public class Hello {  public String sayHello(String name) {    return "Hello, " + name;  }}

第五步,进入maven-c01目录,执行mvn compile,即可发现目录中多了target目录,target目录中会有编译后的class文件(class,不是jar

增加junit依赖

第一个简单的项目搞定了,接下来在此基础上增加一些功能

我们要加入的是对junit的支持

首先,需要增加测试类,我们在maven-c01/src/test/java/org/mvn/test目录下增加TestHello.java

内容如下:

package org.mvn.test;import org.junit.*;import static org.junit.Assert.*;public class TestHello {  @Test  public void testSayHello() {    Hello hello = new Hello();    String str = hello.sayHello("Maven");    assertEquals(str, "Hello, Maven");  }}

其次,因为TestHello.java中import了junit包中的类,那么就需要为项目添加junit的jar包,可是我们不通过下载jar包,然后导入lib包的方式操作。111234

那么,如何操作呢,我们去修改pom.xml文件,增加红色部分内容


<?xml version="1.0" encoding="UTF-8"?><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/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>org.mvn.test</groupId> <!-- 一般是公司,组织,与package无关 -->  <artifactId>project_01</artifactId> <!-- 一般是项目名称 -->  <version>0.0.1-SNAPSHOT</version>  <!—红色部分 -->  <dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>4.10</version>    </dependency>  </dependencies><!—红色部分 --></project>

经过以上的操作,在回到/maven_c01目录,执行mvn test就可以进行junit测试了。

mvn package命令可以用来打包,执行后会在target目录下生成project_01-0.0.1-SNAPSHOT.jar

log存放位置

maven-c01/target/surefire-reports/org.mvn.test.TestHello.txt

 

项目依赖

接下来,我们在建立一个目录maven_c02/,在maven_c02中建立与maven_c01类似的目录结构

mkdir /java/org/mvn/test2

在test2中touch Hello2.java,内容如下:

package org.mvn.test2;import org.mvn.test.Hello;public class Hello2 {  public String sayHello(String name) {        Hello hello = new Hello();        String str = hello.sayHello(name);    return "Hello 2 , " + str;  }}

可以看到,Hello2.java里import org.mvn.test.Hello,Hello是maven_c01里的,Hello2.java 所在的maven_c02如何能与maven_c01建立关联呢?

如何关联2个maven项目,就需要做如下操作

第一步,被依赖的项目需要mvn install自己

[siming@yesimingmaven_c01]$ ls

pom.xml  src target

[siming@yesimingmaven_c01]$ pwd

/home/siming/work/maven_study/maven_c01

[siming@yesiming maven_c01]$ mvn install


第二部,依赖者需要在pom.xml中dependcy被依赖项目的坐标(下面红色部分内容就是maven_c01的坐标,与maven_c01中的pom.xml中的前面几行内容对应)

[siming@yesimingmaven_c02]$ pwd

/home/siming/work/maven_study/maven_c02

[siming@yesimingmaven_c02]$ ls

pom.xml src  target

<?xml version="1.0" encoding="UTF-8"?><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/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>org.mvn.test</groupId> <!-- 一般是公司,组织,与package无关 -->  <artifactId>project_02</artifactId> <!-- 一般是项目名称 -->  <version>0.0.1-SNAPSHOT</version>  <dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>4.10</version>    </dependency>    <dependency>      <groupId>org.mvn.test</groupId>      <artifactId>project_01</artifactId>      <version>0.0.1-SNAPSHOT</version>    </dependency>  </dependencies></project>


0 0