《项目管理利器Maven》学习(三):常用的maven命令介绍

       maven命令有很多,但是比较常用的命令有下面这些:

       

       下面就来看看下面五个命令的使用:

       mvn -v/version:用来查看Maven版本

       mvn compile:用来对源文件进行编译

       mvn test:用来运行测试程序

       mvn package:用来对项目进行打包

       mvn clean:用来清空项目,也就是删除maven项目下的target目录

       mvn install:安装jar包到本地仓库中

       新建一个maven项目maven02,像第一个maven项目的示例那样构建骨架。

       编写的Speak.java源文件代码是:

package com.demo.maven02.util;

import com.demo.maven01.model.HelloWorld;

public class Speak {
	
	public String sayHi() {
		return new HelloWorld().sayHello();
	}
	
}

       编写的SpeakTest.java测试源文件代码是:

package com.demo.maven02.util;

import org.junit.*;
import org.junit.Assert.*;

public class SpeakTest {
	
	@Test
	public void testSayHi() {
		Assert.assertEquals("Hello World!",new Speak().sayHi());
	}
	
}

       由于在代码中我们导入了项目maven01下的com.demo.maven01.model.HelloWorld类,因此我们编写的

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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
  
    <!-- groupId的值是项目的包名 -->
    <groupId>com.demo.maven02</groupId>
	<!-- artifactId的值是模块名 -->
    <artifactId>maven02-util</artifactId>
	<!-- version的值是版本 -->
    <version>0.0.1SNAPSHOT</version>
	
	<dependencies>
	   <!-- 导入Junit依赖 -->
	   <dependency>
	       <groupId>junit</groupId>
           <artifactId>junit</artifactId>
           <version>4.10</version>
	   </dependency>

	   <!-- 导入maven01-model依赖 -->
	   <dependency>
	       <groupId>com.demo.maven01</groupId>
           <artifactId>maven01-model</artifactId>
           <version>0.0.1SNAPSHOT</version>
	   </dependency>
	</dependencies>
  
</project>

       我们使用命令mvn compile编译源代码:

   

       上面的结果是编译失败,原因是在本地仓库中和远程中央仓库中找不到和maven01的相关的jar文件,这就需要

我们手动将maven01的项目打包后,添加到本地仓库中,供maven02项目的使用。

       在项目maven01中我们已经打包成功,只需要用命令mvn install安装jar包到本地仓库中即可:

   

       我们在本地仓库中可以找到项目maven01的jar文件:

   
       接下来我们继续项目maven02的示例,由于编译失败,生成的target目录需要清除,我们使用命令mvn clean清

除即可,也就是删除target目录。

       

       

      那么我们使用命令mvn compile重新编译maven02项目,就会成功。

   

        maven自动建立目录骨架

        Maven集成了archetype插件,用于创建符合maven规定的目录骨架,这个目录骨架我们已经很清楚了,自己手

动创建很麻烦繁琐。

       在进行自动创建之前,先来解决一个问题,可以在最后加上:-DarchetypeCatalog=internal参数,表示的意思

是让它不要从远程服务器上取catalog,如果从远程服务器上下载会很慢或者卡死在Generating project in

 Interactive mode,有时候导致创建失败。

      参考我转载的文章:

      Maven创建项目时出现Generating project in Interactive mode就一直卡住的解决方案

          创建目录的两种方式

      第一种:按照提示进行选择创建符合maven规范的目录

      新建一个项目maven03,在这个目录中进行构建目录。

      mvn archetype:generate 

      archetype:generate 目标会列出一系列的 archetype 让你选择。 Archetype 可以理解成项目的模型。 Maven

 为我们提供了很多种的项目模型,包括从简单的 Swing 到复杂的 Web 应用。我们选择默认的 maven-archetype-

quickstart ,是编号7 ,如下图所示。

      遇到Choose a number or apply filter是直接敲击回车选择默认的即可,也可以选择提示给你的数字。连打两个

回车,这时候让你确定项目属性的配置。

      接下来输入的是,根据自己的要求输入即可,这些属性是我们在命令行中用 -D 选项指定的。该选项使用 -

Dname=value 的格式。回车确认,就完成了项目的建立,如下图所示:

      -DgroupId=com.mycompany.helloworld 

      -DartifactId=helloworld 

      -Dversion=1.0-SNAPSHOT

      -Dpackage=com.mycompany.helloworld 

   

       项目构建过程检查配置的属性,最后成功构建项目helloworld,在maven03目录下出现helloword项目    

       

       第二种:一次性创建符合maven规范的目录

       mvn archetype:generate 

       -DgroupId=组织名,公司的网址反写+项目名

       -DartifactId=项目名-模块名

       -Dversion=版本号

       -Dpackage=代码所存在的包

       我们新建一个maven04的目录,在此目录下使用一次性创建来重新构建上面的示例。

        输入:mvn archetype:generate -DgroupId=com.mycompany.helloworld -DartifactId=helloworld -

Dversion=1.0-SNAPSHOT -Dpackage=com.mycompany.helloworld -DarchetypeCatalog=internal

       看结果:

   

   

        这时候我们看一下 maven 给我们建立的文件目录结构:

        

        maven的archetype插件建立了一个 helloworld 目录,这个名字来自 artifactId 。在这个目录下面,有一个

 Project Object Model(POM) 文件 pom.xml 。这个文件用于描述项目,配置插件和管理依赖关系。

       源代码和资源文件放在 src/main 下面,而测试代码和资源放在 src/test 下面。

       Maven已经为我们建立了一个 App.java 文件:

 

       正是我们需要的HelloWorld代码。所以我们可以构建和运行这个程序了。用下面简单的命令构建:

       cd helloworld和mvn package 

   

   

         当你第一次运行maven的时候,它会从网上的maven库(repository)下载需要的程序,存放在你电脑的本地库

 (local repository) 中,所以这个时候你需要有Internet连接。Maven默认的本地库是 ~/.m2/repository/ ,在

 Windows 下是 %USER_HOME%/.m2/repository/ 。修改了默认的本地仓库则会下载到修改后的本地仓库中。

        

        打包成功后,这个时候, maven在helloworld下面建立了一个新的目录target/ ,构建打包后的jar文件

 helloworld-1.0-SNAPSHOT.jar 就存放在这个目录下。编译后的 class 文件放在 target/classes/ 目录下面,测试

 class 文件放在 target/test-classes/ 目录下面。

     
        为了验证我们的程序能运行,执行下面的命令:

        java -cp target/helloworld-1.0-SNAPSHOT.jar com.mycompany.helloworld.App    

        运行成功!!


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值