Skip to content

Commit 279bf6b

Browse files
committed
java一
1 parent 6262aed commit 279bf6b

File tree

2 files changed

+68
-0
lines changed

2 files changed

+68
-0
lines changed

java一/gradle.jpg

34.2 KB
Loading

java生态学习一.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# 私服仓库
2+
3+
架设在局域网中的特殊远程仓库,目的是代理与部署第三方构建。
4+
5+
特点:
6+
1. 有则直接下载
7+
2. 没有则通过代理下载到私服,再下载
8+
9+
**Nexus**
10+
11+
> maven仓库管理软件
12+
13+
仓库概念:
14+
1. 代理仓库`proxy`
15+
2. 宿主仓库`hosted`
16+
3. 虚拟仓库`virtual`
17+
4. 仓库组`group`
18+
19+
> 仓库组是一种特殊的仓库概念,请求仓库组即可请求仓库组下管理的仓库
20+
21+
格式:
22+
1. maven1
23+
2. maven2(现在都是这个)
24+
25+
> maven2与maven1最大的区别在于提速与简化配置
26+
27+
策略属性:
28+
1. Release(发布版本)
29+
2. Snapshot(快照版本)
30+
31+
# 构建
32+
33+
> `Android studio`默认支持`Gradle`,属于一个`client`
34+
**project**
35+
36+
一个`Gradle`是由一个或者多个`project`组成,而每个`project`又包含了许多可构建组成的部分,通过`Gradle``build-by-convention`具体定义一个`project`的用途。
37+
38+
`project`由一个个`task`组成,每一个`task`代表一个构建执行过程中的原子性操作,如编译,打包,生成javadoc,发布到仓库这样具体的操作。
39+
40+
41+
**task**
42+
`gradle`是由一个个任务(`task`)完成的,基类是`DefaultTask`(必须继承),存在一个生命周期:
43+
`初始化阶段` -- `配置阶段` -- `执行阶段`
44+
45+
`配置阶段`的代码在执行任何`task`时候都会跟着执行,需要执行的操作在`task`都是一个个`action`,然后组成了一个队列,通过`doFirst`或者是`doLast`来决定`action`在队列中的执行顺序。
46+
47+
排列方式,如下伪代码的顺序是`2``1``1``2`
48+
```
49+
doLast 1
50+
doFirst 1
51+
doFirst 2
52+
doLast 2
53+
```
54+
55+
因为`task`对于`action`的执行是顺序的,而`doLast``doFirst`是首位部插入,先插入的自然比后插入的靠中心位置。
56+
57+
**Gradle构建方式**
58+
59+
![gradle获取依赖](./java一/gradle.jpg)
60+
61+
`build.gradle`中声明项目依赖`3.0`版本的`common-lang3``Gradle`就会检查本地存储库中是否有该依赖库,如果没有就通过网络的`Gradle Repository`下载到本地,然后自动声明`classpath`
62+
63+
`gradle``maven`相比来说,`maven`是基于`XML`的配置,而`gradle`是采用了`Groovy`这种特殊语言做到了配置可编程。而且在配置上`gradle``maven`而言做到了沿用与简化,并且还提供了`动态版本依赖`,通过在`版本号`
64+
添加`+`来实现动态的版本管理。
65+
66+
关于`依赖冲突`的解决,`Maven``Gradle`进行依赖管理时都是采用的`传递性依赖`,但是如果多个依赖指向同一个依赖的不同版本就会引起依赖冲突,对于这点`Gradle`已经做到了较好的展示方式。
67+
68+

0 commit comments

Comments
 (0)