0%

maven私服

可以使用Nexus仓库管理器搭建maven私服,该页面默认用户和密码为admin/admin123

Nexus内置仓库

Nexus有四种类型的仓库:group(仓库组)、hosted(宿主)、proxy(代理)和virtual(虚拟)。

Nexus仓库类型

其流程为,Maven可以直接从宿主仓库下载构件;Maven也可以从代理仓库下载构件,而代理仓库会间接从远程仓库下载并缓存构件;为了方便,Maven可以从仓库组下载构件,而仓库组没有实际内容,会转向其包含的宿主仓库或者代理仓库获得实际构件的内容

其内置仓库为

  • Maven Central:该仓库代理maven中央仓库,策略为Release,只会下载和缓存中央仓库中的发布版本构件
  • Releases:策略为Release的宿主类型仓库,用来部署组织内部的发布版本构件
  • Snapshots:策略为Snapshot的宿主类型仓库,用来部署组织内部的快照版本构件
  • 3rd party:策略为Release的宿主类型仓库,用来部署无法从公共仓库获得的第三方发布版本构件
  • Apache Snapshots:策略为Snapshot的代理仓库,用来代理Apache Maven仓库的快照版本构件
  • Codehaus Snapshots:策略为Snapshot的代理仓库,用来代理Codehaus Maven仓库的快照版本构件
  • Google Code:策略为Release的代理仓库,用来代理Google Code Maven仓库的发布版本构件
  • java.net:策略为Release的代理仓库,用来代理jave net Maven仓库的发布版本构件
  • Public Repositories:该仓库将上述所有策略为Release的仓库聚合合并通过一致的地址提供服务
  • Public Snapshot Repositories:该仓库将上述所有策略为Snapshot的仓库聚合合并通过一致的地址提供服务

配置

download remote indexes 改为true

group组仓库 仓库的合集 按照配置的顺序找jar包

- proxy代理仓库1 ------url1   type为proxy
- proxy代理仓库2 ------url2
- hosted宿主仓库       mvn deploy会提交到hosted仓库中
    - snapshot部署仓库
    - release部署仓库
    - 第三方jar包仓库  third party/3rd party

Virtual虚拟仓库,用于适配其他类型的仓库,比如maven要兼容maven1、maven2等

阅读全文 »

maven依赖

maven本身就是作为一个项目管理工具,管理项目中所依赖的jar包,所以maven的配置中存在了很多的依赖

1
2
3
4
5
6
7
8
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>2.2.1.RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>

依赖范围scope

依赖的范围有六种

阅读全文 »

maven常用命令

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
33
34
35
36
37
38
#查看maven版本
mvn -v
#清理
mvn clean
#编译
mvn compile
#编译测试程序
mvn test-compile
#执行测试
mvn test
#打包
mvn package
# 跳过测试
mvn clean package -Dmaven.test.skip=true
mvn clean package -DskipTests
#安装到本地仓库
mvn install
#上传jar包到本地仓库
mvn install:install-file -Dfile= -DgroupId= -DartifactId= -Dversion= -Dpackaging=jar
# 发布
mvn deploy
# 生成项目站点
mvn site
# 创建maven项目
mvn archetype:create -DgroupId= -DartifactId= -DpackageName=
# 测试代码的覆盖率统计信息
mvn cobertura:cobertura
# 查看完整的pom文件(包含有超级pom内容的pom文件(maven有一个超级pom,在lib下的maven-model-builder.jar中))
mvn help:effective-pom
# 查看插件的目标
mvn help:describe -Dplugin=插件名称
mvn help:describe -Dplugin=插件名称 -Dfull
# 查看所有的激活的profiles 会按照从上到下的顺序覆盖,会取用最后一个profile的属性值
mvn help:active-profiles
# 查看所有的profiles
mvn help:all-profiles
# 查看依赖树
mvn dependency:tree

maven生命周期

maven的命令无论是执行哪个阶段,都会从最初的位置开始执行
maven有三套生命周期

一、clean生命周期

在构建之前进行一些清理工作,将以前编译得到的旧文件class字节码文件删除

  • pre-clean clean之前完成的工作
  • clean 移除上一次构建生成的文件
  • post-clean 执行一些需要在clean之后立刻完成的工作
阅读全文 »

Hystrix线程隔离

在微服务框架中,可能一个服务需要调用多个微服务,在tomcat中运行时,tomcat只是分配了100个线程,由于多个服务之间调用的时间消耗过长,可能会导致线程耗尽,而在Hystrix中存在线程隔离,对于每个微服务分配一个线程池,访问某个微服务时就从对应的线程池中取线程,如果对应线程池中的线程都用光了,那么就认为该服务不可用了,如果在需要请求该微服务,则直接返回

阅读全文 »