今天我们来记录一下如何通过Nexus3搭建Maven私服以及如何通过Gradle进行Jar包的上传以及依赖使用
本人此次搭建教程使用的是Centos6.5,之前使用Centos7.3此安装方法一样适用,所以各版本的同学都可放心安装。
1.Maven私服搭建
1.1 更新yum以及内核
yum update -y
1.2 环境准备
maven私服需要java环境,所以我们先安装jdk,如果有此环境的同学可以不进行安装。安装成功后输入命令如下图所示
yum install java-1.8.0-openjdk.x86_64
1.3 安装Nexus3
这里我们使用比较新的版本进行maven私服的搭建。
#创建目录
mkdir -p /data/maven
#切换目录
cd /data/maven
#下载
wget https://sonatype-download.global.ssl.fastly.net/nexus/3/nexus-3.0.2-02-unix.tar.gz
# 解压
tar -zxvf nexus-3.0.2-02-unix.tar.gz
# 重命名
mv nexus-3.0.2-02 nexus
#为了安装问题,我们创建一个nexus用户(使用root用户启动会有安全警告,但是不影响使用,也可不进行新用户创建操作)
#添加新用户
adduser nexus
#赋权给文件夹
sudo chown -R nexus:nexus /data/maven/nexus
#nexus.rc 文件, 修改启动用户,run_as_user=”nexus”
vi /data/maven/nexus/bin/nexus.rc
#创建软连接
ln -s /data/maven/nexus/bin/nexus /etc/init.d/nexus
#将nexus命令添加到系统中
chkconfig --add nexus
chkconfig --levels 345 nexus on
#启动nexus(启动时间大概1分钟)
service nexus start
好了,maven私服我就就算是搭建好了,默认端口为8081,只要输入ip:端口即可进入到maven私服管理页面了,如下图所示,起始页面还是很酷炫的
2.Maven私服管理页面简单介绍
这里只给同学们对这个页面做一个简单的介绍,具体的一些概念网上一搜一大把,所以只进行几张简单的截图以及对应的解释
2.1 登录
首先我们先进行登录,默认账号密码为admin admin123
3.使用Gradle进行jar包上传
3.1 Maven私服配置
好了,也对这个管理页面进行了简单的介绍,接下来我们直入主题,首先我们搭建私服的目的肯定是为了减少开发时jar包下载慢的情况或者我们有自己的内部工具类想通过依赖的形式导入到我们的项目中让我们进行使用,首先我们先在管理页面创建一个repository,其实主要是为了分组,最后我们都会将其划分到maven-public中
好了。我们管理页面的操作到这里就可以算是结束了,接下来我们要使用Gradle将我们的私有工具类放到这个私服上。
3.2 Gradle中build.gradle配置
接下来我们来将我们私有的工具类上传到我们的私服中,其实不管使用Gradle还是Maven都需要配置的是要上传的私服的url以及账号密码,以及上传jar的要起的GroupId、artifactId以及version的名字, 其他的只是一些语法上细节的不同了。好了 废话不多说,直接上build配置。
上传项目所需配置
//必加,添加maven插件
apply plugin: 'maven-publish'
//必加
task sourceJar(type: Jar) {
from sourceSets.main.allJava
}
//必加,设置对应私服信息
publishing {
publications {
maven(MavenPublication) {
//指定group/artifact/version信息,可以不填。默认使用项目group/name/version作为groupId/artifactId/version
groupId 'beyondli'
artifactId 'common'
version '1.1.0'
//如果是war包填写components.web,如果是jar包填写components.java
from components.java
//配置上传源码
artifact sourceJar {
classifier "sources"
}
}
}
repositories {
maven {
//指定要上传的maven私服仓库
url = "http://192.168.47.128:8081/repository/beyondLi-hosted/"
//认证用户和密码
credentials {
username 'admin'
password 'admin123'
}
}
}
}
整体build文件
buildscript {
ext {
springBootVersion = '1.5.8.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
//必加,添加maven插件
apply plugin: 'maven-publish'
group = 'com.beyondli'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
//必加
task sourceJar(type: Jar) {
from sourceSets.main.allJava
}
//必加,设置对应私服信息
publishing {
publications {
maven(MavenPublication) {
//指定group/artifact/version信息,可以不填。默认使用项目group/name/version作为groupId/artifactId/version
groupId 'beyondli'
artifactId 'common'
version '1.1.0'
//如果是war包填写components.web,如果是jar包填写components.java
from components.java
//配置上传源码
artifact sourceJar {
classifier "sources"
}
}
}
repositories {
maven {
//指定要上传的maven私服仓库
url = "http://192.168.47.128:8081/repository/beyondLi-hosted/"
//认证用户和密码
credentials {
username 'admin'
password 'admin123'
}
}
}
}
repositories {
mavenCentral()
}
ext {
orikaVersion = '1.5.2'
fastJsonVersion = '1.2.41'
lombokVersion = '1.16.18'
swaggerVersion='2.7.0'
langVersion='3.7'
collectsVersion='3.2.2'
beanUtilsVersion='1.9.3'
ioVersion='2.6'
}
dependencies {
compile("org.springframework.boot:spring-boot-autoconfigure")
compile("io.springfox:springfox-swagger-ui:${swaggerVersion}")
compile("io.springfox:springfox-swagger2:${swaggerVersion}")
compile("ma.glasnost.orika:orika-core:$orikaVersion")
compile("org.projectlombok:lombok:$lombokVersion")
compile("com.alibaba:fastjson:$fastJsonVersion")
compile("org.apache.commons:commons-lang3:$langVersion")
compile("commons-collections:commons-collections:$collectsVersion")
compile("commons-beanutils:commons-beanutils:$beanUtilsVersion")
compile("commons-io:commons-io:$ioVersion")
//springboot jacson支持jsr310 data/time
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
//解决Hibernate不支持LocalDate/Time/DateTime问题
compile("org.hibernate:hibernate-java8")
}
配置好后。我们使用gradle命令来执行上传:gradle publishMavenPublicationToMavenRepository,执行后我们来看一下我们的maven私服,如下图所示
好了 jar包已经成功上传,接下来我们要进行依赖并使用。
4.使用Gradle进行Maven私服中的jar进行依赖
我们来创建一个新项目。来将我们刚上传的jar依赖下来进行使用,直接上build配置
必配
//必填,私服地址(先添加这个刷新gradle)
maven {
url "http://58.87.75.119:8081/repository/maven-public/"
}
//私服对应依赖名称(再在下方添加需要的依赖)
compile 'beyondli:common:1.1.0'
整个配置
buildscript {
ext {
springBootVersion = '1.5.10.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
group = 'combeyondli'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
//必填,私服地址
maven {
url "http://192.168.47.128:8081/repository/maven-public/"
}
}
dependencies {
compile('org.springframework.boot:spring-boot-starter')
testCompile('org.springframework.boot:spring-boot-starter-test')
compile 'beyondli:common:1.1.0'
}
查看我们的common是否可以使用,如下图所示
好了,大功告成了,我们从maven私服的搭建到结合gradle进行上传以及依赖使用整个流程就通了。希望对各位同学能有所帮助。