Maven---leaning02
来源:互联网 发布:数据透视表 生活 编辑:程序博客网 时间:2024/06/08 05:08
在第二节中有如下内容
- 双项目的class怎么引用
- mvn骨架的快速搭建
- pom.xml文件中的groupId,artifactId,version的理解以及dependency的理解
pom.xml文件的理解
中央仓库[repo.maven.apache.org/maven2]:所有的jar包都在仓库中,maven加载jar包时会先从本地仓库中查找,找不到则从中央仓库中查找。
本地仓库[默认C:\Users\XXX.m2\repository]:由于在C盘中,所以实际上仓库会很不安全,万一系统重装,那么仓库就会丢失,得重新创建,所以需要自定义本地仓库。
自定义仓库:
- 将XXX\apache-maven-3.3.3\conf\setting.xml复制到新的仓库目录下XXX\maven\repository
- 修改两个setting.xml文件,添加
<localRepository>XXX\maven\repository</localRepository>
- 测试,mvn compile,发现又重新下载相关包,并且可以观察到新的仓库中已经下载了。
<!-- 在仓库中查找该类的时候,使用的路径是groupId:artifactId:version:jar也就是说mvn install会根据这三项确定添加到仓库中的位置 从上述描述就可以知道一个jar包的确定是由groupId:artifactId:version来决定的。--><groupId>org.learning.maven</groupId><artifactId>maven-ch03</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><!-- 所谓的依赖就是指定从仓库中的什么地方查找jar包。--><dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope></dependency>
mvn 骨架的快速创建
maven是“约定大于配置”,所以就可以根据约定快速的创建文件夹。
命令:mvn archetype:generator
这个命令就会根据maven的目录结构创建所需要的文件夹和pom.xml
执行上述命令后就会出现下述字样:
//准备工作
Choose org.apache.maven.archetypes:maven-archetype-quickstart version:
1: 1.0-alpha-1
2: 1.0-alpha-2
3: 1.0-alpha-3
4: 1.0-alpha-4
5: 1.0
6: 1.1
Choose a number: 6:6
Define value for property ‘groupId’: : org.learning.maven
Define value for property ‘artifactId’: : maven-ch04
Define value for property ‘version’: 1.0-SNAPSHOT: : 0.0.1-SNAPSHOT
Define value for property ‘package’: org.learning.maven: :
Confirm properties configuration:
groupId: org.learning.maven
artifactId: maven-ch04
version: 0.0.1-SNAPSHOT
package: org.learning.maven
Y: :Y
//success
通过上述过程就可以快速搭建骨架了
注意:maven版本,groupId,artifactId,version都是需要自己写的。
简便写法:
mvn archetype:generate -DgroupId=org.learning.maven -DartifactId=maven-ch04 -Dversion=0.0.1-SNAPSHOT
双项目的引用
假设:现在我们已经创建了maven-ch01,现在想要在maven-ch02中使用maven-ch02中定义的类。
1、编辑pom.xml
2、创建src文件夹及其他相关的文件夹
3、mvn compile
可能的出错信息,找不到相关的类,因此需要添加dependency
以下信息就是相关类所在的包的pom.xml中的定义
<!--这个实际上就是maven-01中的groupId,artifactId,version--> <dependency> <groupId>org.learning.maven</groupId> <artifactId>maven-ch01</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>
4、继续mvn compile,出现
[ERROR] Failed to execute goal on project maven-ch02: Could not resolve dependencies for projec
t org.learning.maven:maven-ch02:jar:0.0.1-SNAPSHOT: Could not find artifact org.learning.maven:
maven-ch01:jar:0.0.1-SNAPSHOT -> [Help 1]
也就是说,找不到上述依赖所定义的类
5、回到依赖类定义的pom.xml所在的文件夹中,执行mvn install,成功之后,再回到现在的pom.xml所在的文件夹中,执行mvn compile,就可以success了
mvn package:单纯的打包,并不会添加到本地仓库
mvn install:将jar包发布到本地仓库中,这样就可以使用dependency引进类了
所以其他的项目使用一个项目里面定义的类时,必须使用mvn install 将它添加到仓库中。
- Maven---leaning02
- Maven
- Maven
- Maven
- maven
- Maven
- Maven
- maven
- maven
- maven
- maven
- Maven
- maven .
- Maven
- maven
- maven
- maven
- MAVEN
- 内存中堆和栈的区别
- 使用ligerUI遇到未知参数、方法处理办法
- Android之Android Studio 快捷键整理分享
- 第2章:数据抽象
- 三大框架的优缺点
- Maven---leaning02
- 测试管理工具
- 记我遇到的神奇BUG
- HTTP协议及工作原理解析
- 解决Android Stidio在模拟器里中文乱码的问题
- python 数据处理学习pandas之DataFrame(二)
- 初到博客请多多关照
- Linux配置网卡
- oracle数据库操作修改字段