Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
AndroidBuildScript
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
pub
AndroidBuildScript
Commits
af440985
Commit
af440985
authored
Apr 21, 2021
by
wengzhipeng@yit.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' into 'master'
Develop See merge request
!4
parents
a5766785
a8cf96f4
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
170 additions
and
3 deletions
+170
-3
Register.Build.gradle
BuildScript/Register.Build.gradle
+166
-0
Yit.Module.Version.gradle
Version/Yit.Module.Version.gradle
+2
-2
build.gradle
build.gradle
+2
-1
No files found.
BuildScript/Register.Build.gradle
0 → 100644
View file @
af440985
apply
plugin:
'maven'
def
getConfigurationProperties
()
{
def
configuration_file_name
=
"gradle.properties"
def
path
=
"${projectDir.absolutePath + File.separator}$configuration_file_name"
println
(
"configuration_file_name path is : $path"
)
def
properties
=
new
Properties
()
new
File
(
path
).
withInputStream
{
stream
->
properties
.
load
(
stream
)
}
return
new
ConfigSlurper
().
parse
(
properties
)
}
def
getJenkinsProperties
()
{
if
(
System
.
getenv
(
"JENKINS_HOME"
)
==
null
)
return
null
def
properties
=
new
Properties
()
new
File
(
"${System.getenv("
JENKINS_HOME
") + File.separator}.android_build.properties"
).
withInputStream
{
stream
->
properties
.
load
(
stream
)
}
def
configSlurper
=
new
ConfigSlurper
().
parse
(
properties
)
if
(
configSlurper
.
RELEASE_URL
==
null
)
return
null
if
(
configSlurper
.
SNAPSHOT_URL
==
null
)
return
null
if
(
configSlurper
.
RELEASE_USERNAME
==
null
)
return
null
if
(
configSlurper
.
SNAPSHOT_USERNAME
==
null
)
return
null
if
(
configSlurper
.
RELEASE_PASSWORD
==
null
)
return
null
if
(
configSlurper
.
SNAPSHOT_PASSWORD
==
null
)
return
null
println
(
"--------------------------------------------------------------"
)
println
(
"---- SNAPSHOT_URL: $configSlurper.SNAPSHOT_URL"
)
println
(
"---- SNAPSHOT_PASSWORD:$configSlurper.SNAPSHOT_PASSWORD"
)
println
(
"---- SNAPSHOT_USERNAME:$configSlurper.SNAPSHOT_USERNAME"
)
println
(
"---- RELEASE_URL: $configSlurper.RELEASE_URL"
)
println
(
"---- RELEASE_PASSWORD: $configSlurper.RELEASE_PASSWORD"
)
println
(
"---- RELEASE_USERNAME: $configSlurper.RELEASE_USERNAME"
)
println
(
"--------------------------------------------"
)
return
configSlurper
}
static
def
isReleaseBuild
(
def
versionCode
)
{
if
(
versionCode
==
null
)
return
false
return
!
versionCode
.
toUpperCase
().
contains
(
"SNAPSHOT"
)
}
static
def
getMavenUrl
(
def
configSlurper
,
def
versionCode
)
{
if
(
configSlurper
==
null
)
return
""
if
(
configSlurper
.
RELEASE_URL
==
null
)
return
""
if
(
configSlurper
.
SNAPSHOT_URL
==
null
)
return
""
if
(
isReleaseBuild
(
versionCode
))
{
return
configSlurper
.
RELEASE_URL
}
return
configSlurper
.
SNAPSHOT_URL
}
static
def
getUserName
(
def
configSlurper
,
def
versionCode
)
{
if
(
configSlurper
==
null
)
return
""
if
(
configSlurper
.
RELEASE_USERNAME
==
null
)
return
""
if
(
configSlurper
.
SNAPSHOT_USERNAME
==
null
)
return
""
if
(
isReleaseBuild
(
versionCode
))
{
return
configSlurper
.
RELEASE_USERNAME
}
return
configSlurper
.
SNAPSHOT_USERNAME
}
static
def
getPassword
(
def
configSlurper
,
def
versionCode
)
{
if
(
configSlurper
==
null
)
return
""
if
(
configSlurper
.
RELEASE_PASSWORD
==
null
)
return
""
if
(
configSlurper
.
SNAPSHOT_PASSWORD
==
null
)
return
""
if
(
isReleaseBuild
(
versionCode
))
{
return
configSlurper
.
RELEASE_PASSWORD
}
return
configSlurper
.
SNAPSHOT_PASSWORD
}
static
def
isNullOrEmpty
(
def
val
)
{
return
val
==
null
||
(
val
as
String
).
replace
(
" "
,
""
).
length
()
==
0
}
uploadArchives
{
def
object
repositories
{
mavenDeployer
{
println
(
'''
Script 使用步骤:
1、必须在模块的跟目录下创建文件名为 gradle.properties 的文件,模块跟目录,非项目跟目录
2、插件环境必须是Yit Jenkins 服务器
3、gradle.properties 文件下必须存在以下 key=value,key:配置名,Value: 配置值
GROUP=Value # 包的所属组
VERSION=Value # 包的版本,分为后缀为SNAPSHOT和无后缀,根据不同的后缀得到不同的上传环境
ARTIFACTID=Value # 包的mArtifactId
PACKAGING=Value # 打包模型,aar或jar,其他不支持
PROJECTNAME=Value # 项目名称,不做过多要求,仅不为空即可
4、模块必须有 com.android.library 或 java 插件
5、打包命令:gradle clean build uploadArchives -q :${module}:dependencies
6、:${module}:dependencies 为可选参数,尽量使用,可以输出当前包的依赖详情,module表示模块,若无可以直接使用 :dependencies
'''
)
if
(!
project
.
plugins
.
hasPlugin
(
"com.android.library"
)
&&
!
project
.
plugins
.
hasPlugin
(
"java"
))
{
throw
new
RuntimeException
(
"project.plugins must is Android Library or Java Library"
)
}
object
=
pom
def
mConfigurationConfigSlurper
=
getConfigurationProperties
()
if
(
mConfigurationConfigSlurper
==
null
)
{
throw
new
RuntimeException
(
"gradle.properties read failure"
)
}
def
mGroup
=
mConfigurationConfigSlurper
.
GROUP
==
null
?
""
:
mConfigurationConfigSlurper
.
group
def
mVersion
=
mConfigurationConfigSlurper
.
VERSION
==
null
?
""
:
mConfigurationConfigSlurper
.
VERSION
def
mArtifactId
=
mConfigurationConfigSlurper
.
ARTIFACTID
==
null
?
""
:
mConfigurationConfigSlurper
.
ARTIFACTID
def
mPackaging
=
mConfigurationConfigSlurper
.
PACKAGING
==
null
?
""
:
mConfigurationConfigSlurper
.
PACKAGING
def
mProjectName
=
mConfigurationConfigSlurper
.
PROJECTNAME
==
null
?
""
:
mConfigurationConfigSlurper
.
PROJECTNAME
if
(
isNullOrEmpty
(
mGroup
)
||
isNullOrEmpty
(
mVersion
)
||
isNullOrEmpty
(
mArtifactId
)
||
isNullOrEmpty
(
mPackaging
)
||
isNullOrEmpty
(
mProjectName
))
{
throw
new
RuntimeException
(
"params[Group, Version, ArtifactId, Packaging ,ProjectName] must not null, values [$mGroup, $mVersion, $mArtifactId, $mPackaging, $mProjectName]"
)
}
if
(
mPackaging
!=
"aar"
&&
mPackaging
!=
"jar"
)
{
throw
new
RuntimeException
(
"Packaging is aar or jar, Packaging is $mPackaging"
)
}
def
mJenkinsConfigSlurper
=
getJenkinsProperties
()
if
(
mJenkinsConfigSlurper
==
null
)
{
throw
new
RuntimeException
(
"environment is not Jenkins"
)
}
def
REPOSITORY_URL
=
getMavenUrl
(
mJenkinsConfigSlurper
,
mVersion
)
def
USERNAME
=
getUserName
(
mJenkinsConfigSlurper
,
mVersion
)
def
PASSWORD
=
getPassword
(
mJenkinsConfigSlurper
,
mVersion
)
if
(
isNullOrEmpty
(
REPOSITORY_URL
)
||
isNullOrEmpty
(
USERNAME
)
||
isNullOrEmpty
(
PASSWORD
))
{
throw
new
RuntimeException
(
"jenkins environment failure,params [REPOSITORY_URL, USERNAME, PASSWORD] must not null, values [$REPOSITORY_URL, $USERNAME, $PASSWORD]"
)
}
println
(
"GROUP:$mGroup\nVERSION:$mVersion\nARTIFACTID:$mArtifactId\nPackaging:$mPackaging\nProjectName:$mProjectName"
)
println
(
"REPOSITORY_URL:$REPOSITORY_URL\nUSERNAME:$USERNAME\nPASSWORD:$PASSWORD"
)
repository
(
url:
REPOSITORY_URL
)
{
authentication
(
userName:
USERNAME
,
password:
PASSWORD
)
}
pom
.
project
{
name
mProjectName
version
mVersion
artifactId
mArtifactId
groupId
mGroup
packaging
mPackaging
description
" "
}
}
}
project
.
getTasksByName
(
"uploadArchives"
,
true
)
.
each
{
it
.
doLast
{
println
'--------------------------------------------------------------------------'
println
"|"
println
"| implementation '${object.groupId}:${object.artifactId}:${object.version}' "
println
"|"
println
'--------------------------------------------------------------------------'
}
}
}
Version/Yit.Module.Version.gradle
View file @
af440985
ext
{
ext
{
app_version
=
"4.1.0"
app_version
=
"4.1.0"
shell
=
"4.1.0.
5
"
shell
=
"4.1.0.
6
"
shop
=
"4.1.0.1"
shop
=
"4.1.0.1"
live
=
"4.1.0.3"
live
=
"4.1.0.3"
cms
=
"4.1.0.
1
"
cms
=
"4.1.0.
2
"
base
=
"4.1.0.4"
base
=
"4.1.0.4"
food
=
"4.1.0.1"
food
=
"4.1.0.1"
browser
=
"4.1.0.1"
browser
=
"4.1.0.1"
...
...
build.gradle
View file @
af440985
apply
from:
"$rootDir.absolutePath/BuildScript/Register.Method.gradle"
//apply from: "$rootDir.absolutePath/BuildScript/Register.Method.gradle"
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment