maven私服的设计搭建
maven私服搭建
了解maven仓库
首先了解一下图
私服的优势
nexus 安装等教程
进入之后搞定这个名称问题 因为学习根据慕课网制作 这里用统一的名称方便调用
打开AS
buildscript {
repositories {
google()
jcenter()
mavenCentral()
maven{
url'http://localhost:8081/repository/imooc_releaes/'
credentials{
uername 'admin'
password 'admin123'
}
}
maven{
url'http://localhost:8081/repository/imooc_snapshots/'
credentials{
uername 'admin'
password 'admin123'
}
}
}
dependencies {
classpath "com.android.tools.build:gradle:3.2.0"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
maven{
url'http://localhost:8081/repository/imooc_releaes/'
credentials{
uername 'admin'
password 'admin123'
}
}
maven{
url'http://localhost:8081/repository/imooc_snapshots/'
credentials{
uername 'admin'
password 'admin123'
}
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
这个自行Google gradle的配置来了解 配置方式在这
最终样式 然后sync now
这个过程中拼写错误会导致很多问题 耐心检查
plugins {
id 'com.android.library'
}
apply plugin: 'maven'
def pomName = this.getName()
def pomVersion = '1.0.0-SNAPSHOT'
def pomDescription = 'the audio library for all projects'
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation 'com.android.support:appcompat-v7:28.0.0'
}
uploadArchives {
repositories {
mavenDeployer {
repository(url: NEXUS_REPOSITORY_URL) {
authentication(userName: NEXUS_USERNAME,
password: NEXUS_PASSWORD)
}
pom.project {
name pomName
version pomVersion
description pomDescription
artifactId pomVersion
groupId POM_GROUPID
packaging POM_PACKAGING
}
}
}
}
上传
创建本地gradle
写内容
用ext来引入
ext {
android = [
compileSdkVersion: 28,
minSdkVersion : 19,
targetSdkVersion : 28,
versionCode : 1,
versionName : "1.0",
mutidex : true
]
depsVersion = [
appcompat: "28.0.0"
]
depsLibs = [
appcompat:"com.android.support:appcompat-v7:${depsVersion.appcompat}"
]
}
可以看到方便更改了很多
那么定义这个干嘛? 用来引入到工程中方便不用每次更改都要一个一个写
更改后 先修改rootproject
apply from:this.project.file('local.gradle')
然后修改项目中的gradle
例如:
plugins {
id 'com.android.application'
}
android {
compileSdkVersion this.rootProject.android.compileSdkVersion
defaultConfig {
applicationId "com.example.i_seventeamapp"
minSdkVersion this.rootProject.android.minSdkVersion
targetSdkVersion this.rootProject.android.targetSdkVersion
versionCode this.rootProject.android.versionCode
versionName this.rootProject.android.versionName
multiDexEnabled this.rootProject.android.multiDexEnabled
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation fileTree(dir: 'lib',includes: ['*.jar'])
implementation this.rootProject.depsLibs.appcompat
}
过程中尽量copy 这样不容易出错
这就是这部分的所有内容