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-INF 、lib 、classes 文件夹和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.skip 或skipTests 至true 禁用测试案例的执行。
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
总结
我们学习了经常使用的命令作弊表,涵盖了所有用例。