20个Maven命令列表

203 阅读6分钟

Maven是java项目中的一个构建自动化项目管理工具。

大多数从事java相关技术工作的人都知道Maven的用法。

我列出了Maven命令的清单,并附有参考例子,这对开发者很有帮助。

这个列表对所有Java开发者在项目中的日常使用都很有帮助。

列出了所有Maven命令的小抄和例子:

  • 如何创建一个maven独立项目样本
  • 创建一个网络独立项目样本
  • 清洁项目
  • 编译项目
  • 构建网络应用
  • 部署项目
  • 运行单元和集成测试
  • 忽略测试的执行
  • 生成项目的java文档
  • Maven调试
  • 依赖树并下载
  • maven配置文件
  • 生成网站

创建一个maven独立项目

mvn archetype:generate -DgroupId=org.cloudhadoop -DartifactId=myproject

这是创建任何Java项目的起始步骤。

该命令在命令提示符下运行,并创建一个项目,名称即工件ID。

该项目位于 "org.cloudhadoop "组中,使用groupid,。

第一次运行这个命令后,它试图从远程仓库下载所有需要的工件(在pom.xml中配置)并复制到你的本地仓库,然后,它创建一个项目。

这个项目包含src/main/java 和 src/test/java 文件夹,其中主文件夹中包含HelloWorld java程序,测试文件夹中包含helloworld程序的测试类。

创建一个网络独立项目

mvn archetype:generate   -DarchetypeGroupId=org.apache.maven.archetypes    
-DarchetypeArtifactId=maven-archetype-webapp   -DgroupId=com.cloudhadoop    
-DartifactId=mywebapp

大多数时候,我们通常在eclipse中创建一个基于Web的项目。

通过这个命令,我们可以创建像spring、struts应用程序这样的web项目,其中包含,WEB-INFlibclasses 文件夹和web.xml

这个命令在命令提示符下运行并创建了mywebapp项目,即工件ID。

这个项目位于使用groupid的 "org.cloudhadoop "组中。

第一次运行此命令后,这也试图下载所有从远程仓库下载的所需工件,并复制到你的本地仓库,之后,它创建一个项目。

目录结构与#1命令不同,它是按照Web应用的maven目录结构创建的。

如何用maven清理java项目?

有些时候,

当你用maven安装运行项目时,target 文件夹中包含了所有编译的类,以及复制的jar和war文件。

Clean maven预定义的目标是用户d在maven命令中删除以前编译的文件和target 目录中的资产。

下面的命令删除了target 文件夹中的所有内容。

mvn  clean

编译maven项目

compile 是maven的预定义目标,该命令编译所有包含项目中 src文件夹中文件的java类。

下面是一个命令

mvn  compile

package 目标用于构建maven应用程序。这是在Builtn预定义目标中。

Java项目可以打包成jar或war。

mvn package  

使用该命令,首先编译所有java文件(使用编译目标),运行所有测试类,将所有这些文件复制到target 文件夹,并创建一个jar ,或war 文件。

这个命令的最终输出是jar/war ,你的项目位于target 文件夹中。

部署/安装项目

mvn install or   
mvn deploy

当我们在你的项目下运行该命令时,它会完成mvn package 中的所有任务,并在目标文件夹中创建所需的jar/war文件。

Maven安装目标用于将项目(jar/war)部署到本地资源库。本地资源库的位置是//.m2//repositories//groupid//
Maven部署目标用于将项目部署到远程仓库(如nexus),这样其他开发者就可以在他们的模块中使用该工件。

远程仓库的位置在pom.xml中指定。

运行单元和集成测试

mvn test

测试目标是用来运行你项目中的测试类。测试文件位于src/test/java下,并将结果复制到目标/test-classes和目标/reports(如果有)。

使用maven运行单个测试类

mvn clean test -Pintegration-test -Dtest=java test class

通过跳过单元和集成测试来运行maven**。

您可以用maven.test.skipskipTeststrue 禁用测试案例的执行。

mvn clean install -Dmaven.test.skip=true or   
mvn clean install -DskipTests=true  

or with package goal
```markup
mvn package –DskipTests or  
mvn package -Dmaven.test.skip

在4#中,随着maven包命令的运行,测试也被执行。如果你想跳过单元测试,我们可以使用这个命令。你也可以在安装目标中使用该选项。

生成项目的java文档

maven javadoc:javadoc

这将为你的项目生成java文档。生成的java文档报告可以在目标文件夹中找到。

这将包括您项目中Java类的API文档。

调试Maven

mvn -X 

该命令用于以调试模式启动maven目标,并提供日志信息。该命令提供了更多信息,比如什么工件因为什么原因失败了。

当你没有得到任何关于maven项目执行失败的线索时,可以使用该命令。

依赖性命令

我们有很多命令可以列出依赖树,了解maven项目的直接和间接依赖关系。

mvn dependency:tree

还有一个命令可以不做任何事情就下载所有依赖项

mvn dependency:resolve

要下载特定的工件依赖,我们必须提供组、工件ID和版本,如下所示。

mvn dependency:resolve -Dartifact=groupId:artifactId:version

Maven配置文件

Maven提供了基于用户/环境和全局的特定配置文件。

假设你的项目需要对生产和开发进行不同的设置。

你可以在pom.xml中定义这些配置文件。

<profiles>
  <profile>
    <activation>
      <property>
        <name>environment</name>
        <value>prod</value>
      </property>
    </activation>
  </profile>
   <profile>
    <activation>
      <property>
        <name>environment</name>
        <value>dev</value>
      </property>
    </activation>
  </profile>
</profiles>

你可以在每个配置文件中配置环境属性,这将通过命令行选项-D激活。

同样可以通过以下命令来激活

用于生产

mvn clean install -Denvironment=prod

用于运行开发配置

mvn clean install -Denvironment=dev

使用-P 命令来执行配置文件的其他方法

mvn -PprofileName install  

生成站点

site是一个内置的目标,为工件生成文档。

mvn site 

maven的预定义目标用于生成格式化的网站文档。

如何在命令行中配置代理?

我们在java项目中遇到过maven的使用,以下是maven命令的清单,供您参考。每当你以不同的目标运行maven命令时,它都会尝试从xml文件中配置的不同仓库下载不同的依赖。

如果mvn install命令无法从资源库下载依赖的工件,那么在启用代理设置的情况下使用以下命令

mvn install -Dhttps.proxyHost="" -Dhttps.proxyPort=""  

要运行maven而不从仓库下载工件?

这是一个在离线模式下执行的maven命令,使用-o

mvn -o install  

总结

我们学习了经常使用的命令作弊表,涵盖了所有用例。