0%

maven打包包含第三方依赖

对于一个java项目来说,肯定会依赖大量的第三方jar包,使用maven是如何将第三方依赖的jar包进行打包,以此来使得使用方不需要再次去maven仓库中进行下载,即可直接运行

maven对此提供了两个插件,一个assembly,一个shade

assembly插件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>

<!--
描述符
1、bin - 将jar包打zip包
2、jar-with-denpendencies - 带有依赖的jar包
3、project - 将工程源代码打包
4、src - 将工程src目录下的源代码打包
-->
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.zhanghe.study.mapreduce.wordcount.WordCountDriver</mainClass> <!-- 你的主类名 -->
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>

shade插件

1
2
3
4
5
6
7
8
9
10
11
12
13
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>

springCloudConfig简介

微服务将单体应用拆分为一个个的子服务,而每个服务都需要必要的配置信息才能运行,所以有一套集中式的、动态的配置管理设施必不可少,springCloud就提供出了一套配置中心SpringCloudConfig来进行配置管理

springCloudConfig分为客户端和服务端两部分,

服务端称为分布式配置中心,是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息的访问接口,集中管理应用程序各个环境下的配置,配置服务器默认采用git来存储配置信息,并可以通过git客户端工具来方便的管理和访问配置内容;

客户端是通过指定的配置中心来管理应用资源,在启动的时候从配置中心获取和加载配置信息,

阅读全文 »

maven自定义模板

在使用maven构建项目的时候,估计会很好奇maven中的archetype是怎么来的,这个其实是可以自己自定义的

首先有一个自己创建好的maven项目,使用mvn archetype:create-from-project编译生成

target/generated-sources/archetype目录,在该目录下执行mvn install,之后执行mvn archetype:crawl会在本地仓库的根目录生成archetype-catalog.xml

阅读全文 »

maven简介

maven是一个项目管理工具,基于项目对象模型(POM Project Object Model)来管理项目的构建、报告和文档信息

使用maven构建项目

使用maven命令构建一个maven项目

阅读全文 »

zuul简介

zuul是Netflix开源的微服务网关,包含了对请求的路由和过滤两个主要的功能

  • 路由,负责将外部请求转发到具体的微服务实例上,实现外部访问统一入口的基础
  • 过滤,负责对请求的过程进行干预,实现请求校验、服务聚合等功能

将zuul注册到注册中心中,同时从注册中心中获取其他微服务的消息,之后访问其他微服务都是通过zuul进行跳转的

阅读全文 »