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>
- maven 学习
- Maven学习
- maven学习
- MAVEN学习
- maven学习
- maven学习
- Maven学习
- maven学习
- Maven学习
- maven学习
- maven学习
- Maven 学习
- maven学习
- Maven学习
- MAVEN学习
- maven学习
- Maven学习
- maven学习
- java接口相关
- 第3周项目4-顺序表应用(1)
- 初中OJ1994【普及组模拟赛】小口口矩阵
- centos 6.7安装xgboost
- 神奇的9种UML图
- Maven学习
- 赛码网笔试总结
- 操作系统常见面试题总结!!!!
- [bzoj1588][HNOI2002]营业额统计
- 第三周项目四 顺序表的应用1
- Java中垃圾回收机制
- JS中Array方法中常用方法五:Array.prototype.push()
- 最大子序列问题
- HDU 1186 敌兵布阵