maven(项目依赖管理)

简介: Maven,['meɪv(ə)n],项目构建管理工具,用于告诉编译器项目中各文件之间的依赖关系等。 pom.xml 文件指定了项目的依赖关系。 1.repository仓库 Maven的仓库分为本地仓库和远程仓库。 本地仓库:是Maven在我们本机设置的仓库目录,默认目录为 当前用户目录/.m2/repository。 远程仓库:联网时才能用,从这里下载jar。 默认远程仓

Maven,['meɪv(ə)n],项目构建管理工具,用于告诉编译器项目中各文件之间的依赖关系等。

pom.xml 文件指定了项目的依赖关系。

1.repository仓库

Maven的仓库分为本地仓库和远程仓库。
本地仓库:是Maven在我们本机设置的仓库目录,默认目录为  当前用户目录/.m2/repository
远程仓库:联网时才能用,从这里下载jar。

默认远程仓库因为访问量大,速度慢,所以可以自己临时替换远程仓库位置。
.m2/ 目录下有个settings.xml配置文件,在<mirrors>节点内部增加<mirror>节点就可以了。
一个示例:

<mirror>  
      <id>jboss-public-repository-group</id>  
      <mirrorOf>*</mirrorOf>  
      <name>JBoss Public Repository Group</name>  
     <url>http://repository.jboss.org/nexus/content/groups/public</url>  
</mirror> 

对eclipse中的maven插件有效。<mirror>配置修改实时生效,不需重启eclipse。


2.mvn项目结构

maven默认的文件存放结构如下:
/项目目录
pom.xml 用于maven的配置文件
/src 源代码目录
/src/main 工程源代码目录
/src/main/java 工程java源代码目录
/src/main/resource 工程的资源目录
/src/test 单元测试目录
/src/test/java
/target 输出目录,所有的输出物都存放在这个目录下
/target/classes 编译之后的class文件
SNAPSHOT:如果一个版本包含字符串"SNAPSHOT",Maven就会在安装或发布这个组件的时候将该符号展开为一个日期和时间值,转换为UTC时间。例 如,"1.0-SNAPSHOT"会在2010年5月5日下午2点10分发布时候变成1.0-20100505-141000-1。

3.maven项目与eclipse项目互转

3.1 eclipse->maven

已有eclipse普通项目转化为maven项目,右击项目名,按照下图3-1选择。


图 3-1 

3.2 maven->eclipse

一个原本的maven项目是没有.classpath与.project这些文件的。所以在用eclipseIDE的时候要创建它们,可以用命令 mvn eclipse:eclipse 来生成这些文件。
微笑问: mvn eclipse:cleanmvn clean 的区别是什么?
答:前者是清除已有的.classpath与.project这些东西;后者是清除mvn在 target/ 目录下面的一些东西。

4.maven生命周期

从前到后依次是compile、test、package、install、deploy。

4.1 compile

compile任务就是从src/main/java下编译所有的java文件,并把它的输出class文件存放到target/classes中。
本地的jdk是1.8,但目标服务器的环境是jdk1.7,那么就要指定编译的版本,可用下面插件解决:
<plugin>
	<artifactId>maven-compiler-plugin</artifactId>
	<version>3.1</version>
	<configuration>
	<span style="white-space:pre">	</span><source>1.7</source>
		<target>1.7</target>
	</configuration>
</plugin>

4.2 test

略。

4.3 package

打包。可参见插件 文章。

4.4 install

将自己的项目打包进本地仓库中。这样自己的其他项目就可以依赖它了。

常见错误

[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

解决方法:Library中的jre变成jdk,下图:


附带源码

可以使用maven-source-plugin插件。



4.5 deploy

用于发布到远程仓库。



目录
相关文章
|
9月前
|
Java Maven 微服务
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的 maven 依赖
在项目中使用Swagger2工具时,需导入Maven依赖。尽管官方最高版本为2.8.0,但其展示效果不够理想且稳定性欠佳。实际开发中常用2.2.2版本,因其稳定且界面友好。以下是围绕2.2.2版本的Maven依赖配置,包括`springfox-swagger2`和`springfox-swagger-ui`两个模块。
402 0
|
5月前
|
Java 区块链 Maven
关于引入maven项目后出现‘parent.relativePath’ of POM错误时的解决方法
关于引入maven项目后出现‘parent.relativePath’ of POM错误时的解决方法
514 3
|
4月前
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
320 0
|
Java Maven 开发者
maven项目中官方setting.xml文件
`settings.xml` 是 Maven 的配置文件,用于定义用户或全局级别的构建行为。它包含本地仓库路径、网络代理、服务器认证、仓库镜像及构建配置文件等设置,帮助开发者根据环境定制 Maven 行为,提升构建效率与灵活性。
1044 0
|
7月前
|
Java 测试技术 项目管理
【JavaEE】从 0 到 1 掌握 Maven 构建 Java 项目核心技巧 解锁 Java 项目高效管理实用实例
本文从Maven基础概念讲起,涵盖安装配置、核心概念(如POM与依赖管理)及优化技巧。结合Java Web项目实例,演示如何用Maven构建和管理项目,解决常见问题,助你高效掌握这一强大工具,提升Java开发与项目管理能力。适合初学者及进阶开发者学习。资源链接:[点此获取](https://pan.quark.cn/s/14fcf913bae6)。
272 6
|
8月前
|
存储 Java Maven
Maven系统级别依赖:解决部署时Jar包缺失问题
以上就是关于Maven系统级别依赖解决部署时Jar包缺失问题的解答,希望对你有所帮助。在软件开发中,遇到问题并解决问题是常态,希望你能够善用这些工具,解决你遇到的问题。
539 28
|
11月前
|
缓存 架构师 Java
Maven实战进阶(01)面试官:Maven怎么解决依赖冲突?| 有几种解决方式
本文介绍了Maven的核心功能和依赖管理技巧。Maven是基于项目对象模型(POM)的构建工具,具备跨平台、标准化、自动化等特性。其三大核心功能为依赖管理、仓库管理和项目构建。依赖管理通过pom.xml文件引入第三方组件并自动下载;仓库管理涉及中央仓库、私服和本地仓库;项目构建则通过生命周期管理编译、测试、打包等流程。文章还详细讲解了依赖冲突的解决方法,包括默认规则、手工排除和版本指定等策略。
|
12月前
|
缓存 Java Maven
【简单四步教你解决♥十分有效】Maven依赖报错、依赖或插件导入失败的万能解决办法
【简单四步教你解决♥十分有效】Maven依赖报错、依赖或插件导入失败的万能解决办法!在处理Maven项目问题时,首先检查Maven配置是否正确。接着通过“File--Invalidata Caches”清除IDEA缓存并重启。使用Maven命令`mvn dependency:purge-local-repository`和`mvn dependency:resolve`清除本地依赖缓存。最后,在Terminal中输入`mvn clean install`完成构建。
3593 1
【简单四步教你解决♥十分有效】Maven依赖报错、依赖或插件导入失败的万能解决办法
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
676 1
从零开始学 Maven:简化 Java 项目的构建与管理
|
Java 应用服务中间件 Maven
Maven的三种项目打包方式——pom,jar,war的区别
Maven 提供了多种打包方式,分别适用于不同类型的项目。pom 用于父项目或聚合项目,便于项目的结构和依赖管理;jar 用于Java类库或可执行的Java应用程序;war 则专用于Java Web应用程序的部署。理解这些打包方式的用途和特点,可以帮助开发者更好地配置和管理Maven项目,确保构建和部署过程的顺利进行。无论是单模块项目还是多模块项目,选择合适的打包方式对于项目的成功至关重要。
1893 3

推荐镜像

更多