当前位置: 首页 > 后端技术 > PHP

ApacheMaven从入门到提升

时间:2023-03-29 21:24:42 PHP

喜欢!GitHub项目JavaHouse同步收录1简介在日常Java开发中,Maven应该是必不可少的工具,当然也有人使用Gradle。那么Maven到底是什么?不就是一个依赖引入工具吗?我相信很多人和我有同样的感受。但总的来说,感觉出来的东西往往是靠不住的。在网上搜集了一些资料,翻了翻官网,重新整理了一下Maven的资料。2Maven简介根据维基百科,Maven是一个软件项目管理和自动构建工具。单从字面意思看,不知道这是想表达什么。按照我的理解,Maven其实是一个与IDEA相辅相成的开发工具。当我们每天使用IDEA编译项目时,实际上是在使用Maven,只是这些操作被强大的IDEA隐藏了起来,造成了我们正在使用IDEA,与Maven没有任何联系的错觉。3Maven的命令说命令行之前,先说几个专业术语。名称解释groupId包名artifactId项目名groupId的artifactId称为坐标,的确,一旦确定了它们的值,我们就可以根据它们的坐标找到它们。创建mvn-Barchetype:generate-DarchetypeGroupId=org.apache.maven.archetypes-DgroupId=com.mycompany.app-DartifactId=my-app以便maven自动创建一个带有helloworld的Maven项目。包名是com.mycompany.app;项目名称是我的应用程序。看到这里,我们就知道为什么Maven是一个项目构建工具了。个人认为Maven类似于前端大佬npm工具。编译mvncompile这条命令从字面上看就是编译命令。它是否编译测试文件夹中的源代码?执行此命令将生成一个目标文件。文件夹里面是编译后的内容。Clearmvnclean该命令主要是清除编译后生成的目标文件夹。打包mvnpackage这个命令会默认将项目打包成jar包,当然我们也可以打包成war包。安装mvninstall这个命令可以把工程打成jar放到本地仓库。4仓库要理解Maven,仓库的概念是必不可少的。让我(灵魂画家)画一幅画。项目需要的依赖都是从本地仓库获取的。本地仓库就是你自己的电脑。我们引入的各种依赖都放在本地仓库中。一般如果依赖有问题,说明本地仓库没有依赖。我们可以先删除对应的本地依赖,再试试,说不定就ok了。从中可以看出,自建仓库,也就是我们所说的私服,可以存放我们开发的一些基础包。从自建仓库导入依赖更快。当然,如果自建仓库中没有我们需要的依赖,自建仓库要建一个仓库,就会发送一个请求,请求一个远程中央仓库。如果没有中央仓库,就真的什么都没有了。5POM现在是我们的重要任务——POM。Maven项目将有一个pom.xml文件。这是一个最小的pom文件。这个pom文件我们应该不陌生,import依赖就是从这里导入的。没什么好说的,说点别的吧。Packagetype//warjar这个标签决定了项目是jar包还是war包。一般来说,SpringBoot项目会被打包成一个war包,然后放到tomcat中运行。当然也可以打成jar包运行。毕竟SpringBoot内置了tomcat,是一个强大的批处理。在src/main/resourcestrue中加入如果我们把文件,对于example将xml后缀的mapper文件放在resources中。编译的时候会发现它们并没有被编译进去,因为标签默认是false,而我们需要的是true。去掉他>部署到远程mycompany-repositoryMyCompanyRepositoryscp://repository.mycompany.com/repository/maven2当我们造轮子,想要部署到远程中央仓库的时候,我们加上上面的标签。同时添加如下内容mycompany-repositoryjvanzyl/path/to/identity(defaultis~/.ssh/id_dsa)my_key_passphrase多个模块如果我们想建几个maven项目是没有问题的。比如有两个模块(my-app,my-webapp),目录如下+-pom.xml+-my-app|+-pom.xml|+-来源|+-主要|+-java+-我的网络应用|+-pom.xml|+-来源|+-主要|+-webapp需要在顶层pom.xml中添加标签,如下4.0.0com.mycompany.appapp1.0-SNAPSHOTpommy-appmy-webapp然后选择一个作为老大(webapp),添加依赖my-app到他的pom文件com.mycompany.appmy-app1.0-SNAPSHOT...然后在这两个项目(webapp,my-app)="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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">com.mycompany.appapp1.0-SNAPSHOT...最后执行mvnverify命令,会在boss工程(webapp)的target文件夹下生成war包。参考https://zh.wikipedia.org/wiki...https://maven.apache.org/https://maven.apache.org/guid...https://maven.apache.org/guid...https://www.cnblogs.com/luota...关注微信公众号,随时手机阅读