Maven整理
- 备注: 解压文件尽量不要放在含有中文或者特殊字符的目录下。
- bin:含有mvn运行的脚本
- boot:含有plexus-classworlds类加载器框架
- conf:含有settings.xml配置文件
- lib:含有Maven运行时所需要的java类库
- LICENSE.txt, NOTICE.txt, README.txt针对Maven版本,第三方软件等简要介绍
1.右键我的电脑(或者计算机)-属性-高级系统设置-高级-环境变量-系统变量-新建MAVEN_HOME,只为maven的安装目录
2.把%MAVEN_HOME%\bin;追加到Path变量的值后面
3.检验是否成功:cmd-> mvn -v
4.修改配置文件:maven安装目录下conf目录中settings.xml

1.localRepository:设置本地仓库:<localRepository>C:\software\repository</localRepository> 2.pluginGroups:插件组合 3.proxies:代理 4.servers服务器(其中username和password是私服的用户名和密码,后续配置私服说明) <server> <id>user-releases</id> <username>admin</username> <password>wangwujuan</password> </server> <server> <id>user-snapshots</id> <username>admin</username> <password>wangwujuan</password> </server> 5.mirrors:镜像路径 <!-- 阿里镜像 --> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> 6.profiles:服务器配置 <!--服务器的配置--> <profile> <id>nexusProfile</id> <repositories> <repository> <id>nexus</id> <name>nexus</name> <url>http://localhost:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <!-- 插件仓库,maven的运行依赖插件,也需要从私服下载插件 --> <pluginRepository> <!-- 插件仓库的id不允许重复,如果重复后边配置会覆盖前边 --> <id>public</id> <name>Public Repositories</name> <url>http://localhost:8081/nexus/content/groups/public/</url> </pluginRepository> </pluginRepositories> </profile> <!-- java编译插件,配jdk的编译版本--> <profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile> 7.activeProfiles:激活私服 <activeProfiles> <activeProfile>nexusProfile</activeProfile> </activeProfiles>
1.本地仓库:存储在本地磁盘,默认在系统盘c盘 用户名/.m2/xx
通过settings.xml 更改本地仓库localRepository
2.远程仓库:一般都使用国内镜像或者公司自己搭建私服. 一般用Nexus
目的:加快下载速度
私服存在的意义:开发者电脑更新,本地仓库就有jar。目前常用的就是阿里镜像
3.Maven(中央)仓库:Maven团队维护的jar包仓库 http://repo1.maven.org/maven2/
一般用这个查POM:http://mvnrepository.com/
检索顺序:先检索本地仓库--再检索远程仓库--最后检索中央仓库
1. Clean:项目构建前的清理操作
2. Default: 核心生命周期核心过程:编译,运行,打包等等
3. Site:发布站点,生成报告等等,

src/main/java:存放项目的.java文件 src/main/resources:存放项目资源文件。如何Spring,Hibernate配置文件 src/test/java:存放所有测试的.java文件.如Junit测试类 src/test/resources:测试资源文件 target:项目数出位置(可以自动生成) pom.xml(maven项目核心配置文件) pom.xml默认内容介绍: <!-- maven中model的版本号 --> <modelVersion>4.0.0</modelVersion> <!-- 公司名称或组织名称或者个人名称 --> <groupId>com.sky</groupId> <!--项目名称 --> <artifactId>FirstMaven</artifactId> <!-- 版本号 --> <version>1.0</version> <!-- 打包方式 :项目类型 POM:MAVEN项目,常用在继承和聚合上 JAR:JAVASE项目,没有网页,跟服务器没关系 WAR:JAVAEE项目,跟服务器没关系--> <packaging>war</packaging>

上网搜索依赖进行添加: 推荐网站:http://mvnrepository.com/ 示例: <dependencies> <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.2.10.Final</version> </dependency> </dependencies> 添加到项目的pom文件内容说明(切换pom.xml到Dependencies目录下): type:类型 取值说明: jar:jar包 Scope:声明jar包的存活时间 取值说明: 1、provided:编译和测试时需要 2、compile:编译、测试、运行、打包需要 3、runtime:测试、运行、打包需要 4、test:测试 5、system:编译和测试时需要,显示引用,Maven不会检索

方式一:在指定项目的pom.xml中添加如下话语(每个maven project或者maven model都要配置): <!--构建项目配置 --> <build> <!--插件 --> <plugins> <!-- java编译插件,配jdk的编译版本 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.6.0</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build> 方式二:在maven的settings.xml中配置jdk插件(配置一次即可):放在<profiles>节点下即可 <profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile>
依赖传递出现的问题: 经常出现jar包冲突,
解决方案:直接排除指定的jar包
<exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </exclusion> </exclusions>
<!-- 1.标记版本号 --> <properties> <spring.version>4.3.8.RELEASE</spring.version> </properties> <!-- 2. 锁定版本,spring4.3.8 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> </dependencies> </dependencyManagement> <!-- 依赖管理 --> <dependencies> <!-- spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> </dependencies>
3.3 第一声明原则(基本不用)
clean:清空
compile:编译
deploy:上传
test:单元测试
install:添加到本地仓库
tomcat:run 启动tomcat
package:打包
开发中多个项目有共同的jar包依赖,可以采用继承方式简化各个项目的pom文件,在父类的pom文件中依赖共同拥有的jar.
注意:
1.父级项目只能是pom打包方式。
2.子项目是一个Maven Project
示例: 创建一个pom项目,然后再创建另外的jar或war项目继承pom项目
能够把项目的各个模块聚合在一起构建。一般用于分模块开发,最后整体打包发布。 Maven Model和Maven Project的区别? Maven Project独立运行 Maven Model无法独立运行 注意: 1.根项目是一个pom项目。 2.子模块:Maven Model 3.每个模块写完后需要上传到私服 4.打包,需要整体打包找到最后的war项目使用Tomcat加载 实际中,我们会将一些庞大的项目拆分为若干模块进行开发 三层+MVC 如下: model-------jar dao----------jar service------jar web----------war
-
-
继承是为了消除重复配置。对于继承关系的父POM来说,它不知道有哪些子模块继承于它,但是子模块必须知道自己的父POM是什么
本博客文章均已测试验证,欢迎评论、交流、点赞。
部分文章来源于网络,如有侵权请联系删除。
转载请注明原文链接:https://www.cnblogs.com/sueyyyy/p/9575470.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix