#0 v2.0.0
This commit is contained in:
@@ -2,7 +2,7 @@ apply from: "./gradleScript/config.gradle"
|
|||||||
|
|
||||||
buildscript {
|
buildscript {
|
||||||
ext.kotlin_version = '1.6.21'
|
ext.kotlin_version = '1.6.21'
|
||||||
ext.component_version = '1.0.13'
|
ext.component_version = '2.0.0'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
google()
|
google()
|
||||||
@@ -11,7 +11,7 @@ buildscript {
|
|||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:4.1.0'
|
classpath 'com.android.tools.build:gradle:4.1.0'
|
||||||
classpath "com.github.DSAppTeam:ComponentCornerstone:$component_version"
|
// classpath "com.github.DSAppTeam:ComponentCornerstone:$component_version"
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
//调试需要
|
//调试需要
|
||||||
// classpath "com.effective.plugins:component-plugin"
|
// classpath "com.effective.plugins:component-plugin"
|
||||||
@@ -47,4 +47,4 @@ allprojects {
|
|||||||
// delete rootProject.buildDir
|
// delete rootProject.buildDir
|
||||||
//}
|
//}
|
||||||
//
|
//
|
||||||
apply from: "./gradleScript/component.gradle"
|
//apply from: "./gradleScript/component.gradle"
|
||||||
|
|||||||
@@ -66,6 +66,35 @@ branch=\$(git symbolic-ref --short -q HEAD)
|
|||||||
|
|
||||||
strB="BUILD SUCCESSFUL"
|
strB="BUILD SUCCESSFUL"
|
||||||
echo "current branch:\$branch"
|
echo "current branch:\$branch"
|
||||||
|
|
||||||
|
#尝试读取指定的JAVA_HOME配置
|
||||||
|
config="./local.properties"
|
||||||
|
echo "config path: \${config}"
|
||||||
|
# 定义一个函数从properties文件读取key
|
||||||
|
function prop {
|
||||||
|
\t[ -f "\$config" ] && grep -E "^\\s*[^#]?\${1}=.*\$" \$config | cut -d'=' -f2
|
||||||
|
}
|
||||||
|
|
||||||
|
hookJavaHome=\$(prop "hook.gradle.jdk.home")
|
||||||
|
echo "\$hookJavaHome"
|
||||||
|
if [ -n "\$hookJavaHome" ]; then
|
||||||
|
export JAVA_HOME="\$hookJavaHome"
|
||||||
|
fi
|
||||||
|
if [ -z "\$hookJavaHome" ]; then
|
||||||
|
echo "hookJavaHome is empty"
|
||||||
|
config="./gradle.properties"
|
||||||
|
echo "config path: \${config}"
|
||||||
|
|
||||||
|
spJavaHome=\$(prop "org.gradle.java.home")
|
||||||
|
echo "\$spJavaHome"
|
||||||
|
if [ -n "\$spJavaHome" ]; then
|
||||||
|
export JAVA_HOME="\$spJavaHome"
|
||||||
|
fi
|
||||||
|
if [ -z "\$spJavaHome" ]; then
|
||||||
|
echo "spJavaHome is empty"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
tempLog=/tmp/\$(date +%s).log && touch \$tempLog
|
tempLog=/tmp/\$(date +%s).log && touch \$tempLog
|
||||||
if [[ "\$branch" =~ (^develop\$)|(^release/*) ]]; then
|
if [[ "\$branch" =~ (^develop\$)|(^release/*) ]]; then
|
||||||
./gradlew ComponentPublishDebug | tee \$tempLog
|
./gradlew ComponentPublishDebug | tee \$tempLog
|
||||||
|
|||||||
@@ -126,7 +126,11 @@ class Runtimes {
|
|||||||
osw.flush()
|
osw.flush()
|
||||||
osw.close()
|
osw.close()
|
||||||
}
|
}
|
||||||
FileUtil.shell("git config core.hooksPath ${hooksDir.absolutePath} && chmod 700 ${hooksDir.absolutePath}/*")
|
String hooksDirPath = hooksDir.absolutePath
|
||||||
|
String cmd = "git config core.hooksPath ${hooksDirPath} && chmod 700 ${hooksDirPath}${File.separator}*"
|
||||||
|
Logger.buildOutput("hooks Path:${hooksDirPath}")
|
||||||
|
Logger.buildOutput("hooks cmd:${cmd}")
|
||||||
|
FileUtil.shell(cmd)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -205,7 +209,7 @@ class Runtimes {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
PublicationUtil.filterPublicationDependencies(publication)
|
PublicationUtil.filterPublicationDependencies(publication)
|
||||||
if (!publication.forceLocal && publication.sdkVersion != null) {
|
if (/*!publication.forceLocal && */publication.sdkVersion != null) {
|
||||||
mutLineLog.build4("* " + JarUtil.handleMavenJar(childProject, publication))
|
mutLineLog.build4("* " + JarUtil.handleMavenJar(childProject, publication))
|
||||||
} else {
|
} else {
|
||||||
mutLineLog.build4("* " + JarUtil.handleLocalJar(childProject, publication))
|
mutLineLog.build4("* " + JarUtil.handleLocalJar(childProject, publication))
|
||||||
|
|||||||
@@ -73,6 +73,8 @@ class SdkPlugin extends BasePlugin {
|
|||||||
// handleImpAar(root)
|
// handleImpAar(root)
|
||||||
List<String> topSort = PublicationManager.getInstance().dependencyGraph.topSort()
|
List<String> topSort = PublicationManager.getInstance().dependencyGraph.topSort()
|
||||||
Collections.reverse(topSort)
|
Collections.reverse(topSort)
|
||||||
|
boolean isAssemble = false
|
||||||
|
boolean isPublish = false
|
||||||
topSort.each {
|
topSort.each {
|
||||||
PublicationOption publication = PublicationManager.getInstance().publicationDependencies.get(it)
|
PublicationOption publication = PublicationManager.getInstance().publicationDependencies.get(it)
|
||||||
if (publication == null) {
|
if (publication == null) {
|
||||||
@@ -81,12 +83,14 @@ class SdkPlugin extends BasePlugin {
|
|||||||
Project childProject = root.findProject(publication.project)
|
Project childProject = root.findProject(publication.project)
|
||||||
ProjectInfo projectInfo = Runtimes.getProjectInfo(childProject.name)
|
ProjectInfo projectInfo = Runtimes.getProjectInfo(childProject.name)
|
||||||
if (projectInfo.isAssemble) {
|
if (projectInfo.isAssemble) {
|
||||||
|
isAssemble = true
|
||||||
if (Runtimes.sSdkOption.isPublishMode) {
|
if (Runtimes.sSdkOption.isPublishMode) {
|
||||||
Runtimes.checkPublishEnable(childProject)
|
Runtimes.checkPublishEnable(childProject)
|
||||||
}
|
}
|
||||||
PublicationUtil.handleSdkPublish(childProject, ComponentPlugin.androidProject, publication, null)
|
PublicationUtil.handleSdkPublish(childProject, ComponentPlugin.androidProject, publication, null)
|
||||||
handleImpAar(childProject, publication)
|
handleImpAar(childProject, publication)
|
||||||
} else if (projectInfo.isPublish) {
|
} else if (projectInfo.isPublish) {
|
||||||
|
isPublish = true
|
||||||
publication.impNeedPublish = true
|
publication.impNeedPublish = true
|
||||||
publication.sdkNeedPublish = true
|
publication.sdkNeedPublish = true
|
||||||
def publishTask = null
|
def publishTask = null
|
||||||
@@ -100,7 +104,131 @@ class SdkPlugin extends BasePlugin {
|
|||||||
PublicationManager.getInstance().addImpPublication(publication)
|
PublicationManager.getInstance().addImpPublication(publication)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (isAssemble) {
|
||||||
dealAssemble(root)
|
dealAssemble(root)
|
||||||
|
} else if (isPublish) {
|
||||||
|
dealPublish(root)
|
||||||
|
} else {
|
||||||
|
dealAssemble(root)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private dealPublish(Project root) {
|
||||||
|
MutLineLog mutLineLog = new MutLineLog()
|
||||||
|
mutLineLog.build4("开始处理Publish场景")
|
||||||
|
//收集所有模块的引用配置
|
||||||
|
ArrayList<Configuration> allConfigList = new ArrayList<>()
|
||||||
|
root.allprojects.each { project ->
|
||||||
|
if (project == root) return
|
||||||
|
if (!Runtimes.shouldApplyComponentPlugin(project)) return
|
||||||
|
project.configurations.each { config ->
|
||||||
|
if (config.name == "api" || config.name == "implementation"
|
||||||
|
|| config.name == "compileOnly"
|
||||||
|
|| config.name == "debugImplementation"
|
||||||
|
|| config.name == "debugApi"
|
||||||
|
|| config.name == "debugCompileOnly") {
|
||||||
|
allConfigList.add(config)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//收集project之间的引用依赖关系 收集被依赖的project,需要参与编译
|
||||||
|
HashMap<Project, ArrayList<Configuration>> needCompileProjectConfigMap = new HashMap<>()
|
||||||
|
HashMap<String, Map<String, String>> aarList = new HashMap<>()
|
||||||
|
root.allprojects.each { project ->
|
||||||
|
if (project == root) return
|
||||||
|
allConfigList.each { config ->
|
||||||
|
for (Dependency dependency : config.dependencies) {
|
||||||
|
if (dependency instanceof DefaultProjectDependency && dependency.dependencyProject.name == project.name) {
|
||||||
|
ArrayList<Configuration> configs = needCompileProjectConfigMap.get(project)
|
||||||
|
if (configs == null) {
|
||||||
|
configs = new ArrayList<>()
|
||||||
|
needCompileProjectConfigMap.put(project, configs)
|
||||||
|
}
|
||||||
|
configs.add(config)
|
||||||
|
//一个config只需要添加一次就好了
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PublicationOption publication = Runtimes.getImplPublication(project.name)
|
||||||
|
if (publication != null && !publication.impNeedPublish) {
|
||||||
|
ProjectInfo projectInfo = Runtimes.getProjectInfo(project.name)
|
||||||
|
Map<String, String> map = new LinkedHashMap<>()
|
||||||
|
map.put("path", PublicationUtil.getImpMavenGAV(publication, !projectInfo.isDebug))
|
||||||
|
aarList.put(project.name, map)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!aarList.isEmpty()) {
|
||||||
|
root.allprojects.each { project ->
|
||||||
|
if (project == root) return
|
||||||
|
// 替换成aar文件
|
||||||
|
aarList.each { map ->
|
||||||
|
//剔除所有配置中的不需要编译模块的依赖
|
||||||
|
project.configurations.each { config ->
|
||||||
|
config.dependencies.removeAll { dependency ->
|
||||||
|
dependency instanceof DefaultProjectDependency && dependency.dependencyProject.name == map.key
|
||||||
|
}
|
||||||
|
}
|
||||||
|
project.dependencies {
|
||||||
|
api map.value.get("path")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
aarList.each { map ->
|
||||||
|
allConfigList.each { config ->
|
||||||
|
config.dependencies.removeAll { dependency ->
|
||||||
|
dependency instanceof DefaultProjectDependency && dependency.dependencyProject.name == map.key
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
List<Map<String, Object>> needAndDependency = new ArrayList<>()
|
||||||
|
//分离所有dependency 进行预处理
|
||||||
|
allConfigList.each { config ->
|
||||||
|
config.dependencies.each { dependency ->
|
||||||
|
if (dependency instanceof DefaultProjectDependency) {
|
||||||
|
def dependencyClone = dependency.copy()
|
||||||
|
dependencyClone.targetConfiguration = null
|
||||||
|
Map<String, Object> map = new HashMap<>()
|
||||||
|
map.put(config.name, dependencyClone)
|
||||||
|
needAndDependency.add(map)
|
||||||
|
} else {
|
||||||
|
if (dependency instanceof DefaultSelfResolvingDependency && (dependency.files instanceof DefaultConfigurableFileCollection || dependency.files instanceof DefaultConfigurableFileTree)) {
|
||||||
|
// 这里的依赖是以下两种: 无需添加在 编译project ,因为 jar 包直接进入 自身的 aar 中的libs 文件夹
|
||||||
|
// implementation rootProject.files("libs/*.jar")
|
||||||
|
// implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||||
|
|
||||||
|
} else {
|
||||||
|
Map<String, Object> map = new HashMap<>()
|
||||||
|
map.put(config.name, dependency)
|
||||||
|
needAndDependency.add(map)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//遍历所有需要编译的project 将引用传递至需要编译的project中,module引用只需要传递api方式引用的
|
||||||
|
needCompileProjectConfigMap.each { entry ->
|
||||||
|
if (entry.key == root) return
|
||||||
|
needAndDependency.each { map ->
|
||||||
|
Map.Entry<String, Object> config = map.entrySet().first()
|
||||||
|
Dependency dependency = config.value
|
||||||
|
if (config.key == "api") {
|
||||||
|
if (dependency instanceof DefaultProjectDependency && dependency.dependencyProject.name == entry.key.name) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
entry.key.dependencies.add(config.key, config.value)
|
||||||
|
} else {
|
||||||
|
//不传递implement project
|
||||||
|
if (dependency instanceof DefaultProjectDependency) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
entry.key.dependencies.add(config.key, config.value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Logger.buildBlockLog("处理Publish场景", mutLineLog)
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void handleImpAar(Project project, PublicationOption publication) {
|
private static void handleImpAar(Project project, PublicationOption publication) {
|
||||||
@@ -209,10 +337,10 @@ class SdkPlugin extends BasePlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void handleCompileModuleDependency(ProjectInfo compileProject, Project root, HashSet<String> hasResolve, MutLineLog mutLineLog) {
|
private void handleCompileModuleDependency(ProjectInfo compileProject, Project root, HashSet<String> hasResolve, MutLineLog mutLineLog) {
|
||||||
StringBuilder stringBuilder = new StringBuilder()
|
|
||||||
//收集所有模块的引用配置
|
//收集所有模块的引用配置
|
||||||
ArrayList<Configuration> allConfigList = new ArrayList<>()
|
ArrayList<Configuration> allConfigList = new ArrayList<>()
|
||||||
compileProject.project.rootProject.allprojects.each { project ->
|
root.allprojects.each { project ->
|
||||||
if (project == root) return
|
if (project == root) return
|
||||||
if (!Runtimes.shouldApplyComponentPlugin(project)) return
|
if (!Runtimes.shouldApplyComponentPlugin(project)) return
|
||||||
project.configurations.each { config ->
|
project.configurations.each { config ->
|
||||||
@@ -227,7 +355,7 @@ class SdkPlugin extends BasePlugin {
|
|||||||
}
|
}
|
||||||
//收集project之间的引用依赖关系 收集被依赖的project,需要参与编译
|
//收集project之间的引用依赖关系 收集被依赖的project,需要参与编译
|
||||||
HashMap<Project, ArrayList<Configuration>> needCompileProjectConfigMap = new HashMap<>()
|
HashMap<Project, ArrayList<Configuration>> needCompileProjectConfigMap = new HashMap<>()
|
||||||
compileProject.project.rootProject.allprojects.each { project ->
|
root.allprojects.each { project ->
|
||||||
if (project == root) return
|
if (project == root) return
|
||||||
allConfigList.each { config ->
|
allConfigList.each { config ->
|
||||||
for (Dependency dependency : config.dependencies) {
|
for (Dependency dependency : config.dependencies) {
|
||||||
@@ -246,7 +374,7 @@ class SdkPlugin extends BasePlugin {
|
|||||||
}
|
}
|
||||||
//剔除被收集的编译工程的引用
|
//剔除被收集的编译工程的引用
|
||||||
allConfigList.clear()
|
allConfigList.clear()
|
||||||
compileProject.project.rootProject.allprojects.each { project ->
|
root.allprojects.each { project ->
|
||||||
if (project == root) return
|
if (project == root) return
|
||||||
if (!Runtimes.shouldApplyComponentPlugin(project)) return
|
if (!Runtimes.shouldApplyComponentPlugin(project)) return
|
||||||
project.configurations.each { config ->
|
project.configurations.each { config ->
|
||||||
@@ -261,6 +389,7 @@ class SdkPlugin extends BasePlugin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
HashMap<String, Map<String, String>> aarList = new HashMap<>()
|
HashMap<String, Map<String, String>> aarList = new HashMap<>()
|
||||||
|
StringBuilder stringBuilder = new StringBuilder()
|
||||||
for (String realDependency : hasResolve) {
|
for (String realDependency : hasResolve) {
|
||||||
PublicationOption publication = Runtimes.getImplPublication(realDependency)
|
PublicationOption publication = Runtimes.getImplPublication(realDependency)
|
||||||
Logger.buildOutput("resolve publication ${publication}")
|
Logger.buildOutput("resolve publication ${publication}")
|
||||||
@@ -296,8 +425,9 @@ class SdkPlugin extends BasePlugin {
|
|||||||
needCompileProjectConfigMap.put(Runtimes.getProjectInfo(realDependency).project, new ArrayList<Configuration>())
|
needCompileProjectConfigMap.put(Runtimes.getProjectInfo(realDependency).project, new ArrayList<Configuration>())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
mutLineLog.build4("application[" + compileProject.name + "] component 合并依赖 = " + stringBuilder.toString())
|
||||||
if (compileProject.isDebug && !aarList.isEmpty()) {
|
if (compileProject.isDebug && !aarList.isEmpty()) {
|
||||||
compileProject.project.rootProject.allprojects.each { project ->
|
root.allprojects.each { project ->
|
||||||
if (project == root) return
|
if (project == root) return
|
||||||
Logger.buildOutput("replace aar:project: $project.name")
|
Logger.buildOutput("replace aar:project: $project.name")
|
||||||
// 替换成aar文件
|
// 替换成aar文件
|
||||||
@@ -372,6 +502,6 @@ class SdkPlugin extends BasePlugin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mutLineLog.build4("application[" + compileProject.name + "] component 合并依赖 = " + stringBuilder.toString())
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.plugin.component.utils
|
|||||||
|
|
||||||
import com.plugin.component.ComponentPlugin
|
import com.plugin.component.ComponentPlugin
|
||||||
import com.plugin.component.Constants
|
import com.plugin.component.Constants
|
||||||
|
import com.plugin.component.log.Logger
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
|
|
||||||
class FileUtil {
|
class FileUtil {
|
||||||
@@ -82,6 +83,7 @@ class FileUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static String shell(String cmd) {
|
static String shell(String cmd) {
|
||||||
|
try {
|
||||||
def out = new ByteArrayOutputStream()
|
def out = new ByteArrayOutputStream()
|
||||||
ComponentPlugin.rootProject.exec {
|
ComponentPlugin.rootProject.exec {
|
||||||
executable 'bash'
|
executable 'bash'
|
||||||
@@ -89,5 +91,10 @@ class FileUtil {
|
|||||||
standardOutput = out
|
standardOutput = out
|
||||||
}
|
}
|
||||||
return out.toString().trim()
|
return out.toString().trim()
|
||||||
|
} catch (Exception e) {
|
||||||
|
Logger.buildOutput("bash error: ${e.getMessage()}")
|
||||||
|
return cmd.execute()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -323,45 +323,11 @@ class JarUtil {
|
|||||||
String fileName = publication.artifactId + "-" + publication.sdkVersion + ".jar"
|
String fileName = publication.artifactId + "-" + publication.sdkVersion + ".jar"
|
||||||
// http://172.16.xxx.xxx:8081/nexus/content/groups/public/com/xxx/cif/xxx-cif-api/0.0.1-SNAPSHOT/xxx-cif-api-0.0.1-20170515.040917-89.jar
|
// http://172.16.xxx.xxx:8081/nexus/content/groups/public/com/xxx/cif/xxx-cif-api/0.0.1-SNAPSHOT/xxx-cif-api-0.0.1-20170515.040917-89.jar
|
||||||
String url = Runtimes.sSdkOption.getMavenUrl()
|
String url = Runtimes.sSdkOption.getMavenUrl()
|
||||||
|
if (TextUtils.isEmpty(url)) return false
|
||||||
String line = HttpUrlConnectHelper.sendRequest("$url/${publication.groupId.replace('.', '/')}/${publication.artifactId}/${publication.sdkVersion}/$fileName", "HEAD")
|
String line = HttpUrlConnectHelper.sendRequest("$url/${publication.groupId.replace('.', '/')}/${publication.artifactId}/${publication.sdkVersion}/$fileName", "HEAD")
|
||||||
if (!TextUtils.isEmpty(line)) {
|
if (!TextUtils.isEmpty(line)) {
|
||||||
filePath = "$url/${publication.groupId.replace('.', '/')}/${publication.artifactId}/${publication.sdkVersion}/$fileName"
|
filePath = "$url/${publication.groupId.replace('.', '/')}/${publication.artifactId}/${publication.sdkVersion}/$fileName"
|
||||||
}
|
}
|
||||||
// def name = "component[${publication.groupId}-${publication.artifactId}]Classpath"
|
|
||||||
// Configuration configuration = project.configurations.create(name)
|
|
||||||
// if (publication.dependencies != null) {
|
|
||||||
// if (publication.dependencies.implementation != null) {
|
|
||||||
// publication.dependencies.implementation.each { dependency ->
|
|
||||||
//// Logger.buildOutput("packJar: publication:${PublicationUtil.getPublicationId(publication)} move dependencies:${it}")
|
|
||||||
// if (dependency instanceof PublicationDependencyModuleOption) {
|
|
||||||
// project.dependencies.add(name, dependency.path)
|
|
||||||
// } else {
|
|
||||||
// project.dependencies.add(name, dependency)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// if (publication.dependencies.compileOnly != null) {
|
|
||||||
// publication.dependencies.compileOnly.each { dependency ->
|
|
||||||
// if (dependency instanceof PublicationDependencyModuleOption) {
|
|
||||||
// project.dependencies.add(name, dependency.path)
|
|
||||||
// } else {
|
|
||||||
// project.dependencies.add(name, dependency)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// project.dependencies.add(name, PublicationUtil.getMavenGAV(publication))
|
|
||||||
// try {
|
|
||||||
// configuration.copy().files.each {
|
|
||||||
// if (it.name.endsWith(fileName)) {
|
|
||||||
// filePath = it.absolutePath
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// } catch (Exception e) {
|
|
||||||
//// e.printStackTrace()
|
|
||||||
// Logger.buildOutput(e.getMessage())
|
|
||||||
// }
|
|
||||||
// project.configurations.remove(configuration)
|
|
||||||
return filePath != null
|
return filePath != null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -506,12 +506,13 @@ class PublicationUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void handleImplPublish(Project project, PublicationOption publication, boolean isDebug, Task dependTask) {
|
static void handleImplPublish(Project project, PublicationOption publication, boolean isDebug, Task dependTask) {
|
||||||
Logger.buildOutput("Handle ${publication.name} ImplPublish,isDebug:${isDebug}")
|
|
||||||
boolean isAarExists = AarUtil.isArrExits(project, publication, !isDebug)
|
boolean isAarExists = AarUtil.isArrExits(project, publication, !isDebug)
|
||||||
if (isAarExists) {
|
if (isAarExists) {
|
||||||
publication.impNeedPublish = false
|
publication.impNeedPublish = false
|
||||||
|
Logger.buildOutput("Handle ${publication.name} ImplPublish,isDebug:${isDebug} impNeedPublish:${publication.impNeedPublish}")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Logger.buildOutput("Handle ${publication.name} ImplPublish,isDebug:${isDebug} impNeedPublish:${publication.impNeedPublish}")
|
||||||
project.plugins.apply(Constants.PLUGIN_MAVEN_PUBLISH)
|
project.plugins.apply(Constants.PLUGIN_MAVEN_PUBLISH)
|
||||||
if (isDebug) {
|
if (isDebug) {
|
||||||
//注册打包arr task
|
//注册打包arr task
|
||||||
|
|||||||
20
hooks/pre-push
Executable file
20
hooks/pre-push
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
remote="$1"
|
||||||
|
url="$2"
|
||||||
|
branch=$(git symbolic-ref --short -q HEAD)
|
||||||
|
|
||||||
|
strB="BUILD SUCCESSFUL"
|
||||||
|
echo "current branch:$branch"
|
||||||
|
tempLog=/tmp/$(date +%s).log && touch $tempLog
|
||||||
|
if [[ "$branch" =~ (^develop$)|(^release/*) ]]; then
|
||||||
|
./gradlew ComponentPublishDebug | tee $tempLog
|
||||||
|
result=$(cat $tempLog)
|
||||||
|
checkStr=$(echo "$result" | grep "${strB}")
|
||||||
|
if [[ "$checkStr" != "" ]]; then
|
||||||
|
exit 0;
|
||||||
|
else
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
exit 0;
|
||||||
@@ -2,11 +2,11 @@
|
|||||||
//include ':component-core'
|
//include ':component-core'
|
||||||
|
|
||||||
//发布插件
|
//发布插件
|
||||||
//include ':component-plugin'
|
include ':component-plugin'
|
||||||
|
|
||||||
//调试插件
|
//调试插件
|
||||||
//includeBuild './component-plugin'
|
//includeBuild './component-plugin'
|
||||||
|
|
||||||
include ':app'/*, ':pins'*/
|
//include ':app'/*, ':pins'*/
|
||||||
////include ':debugModule'
|
////include ':debugModule'
|
||||||
include ':library', ':libraryKotlin', ':libraryWithoutPlugin'
|
//include ':library', ':libraryKotlin', ':libraryWithoutPlugin'
|
||||||
|
|||||||
Reference in New Issue
Block a user