Skip to content

Commit

Permalink
Support gradle 6.8 (kezong#8)
Browse files Browse the repository at this point in the history
* Support gradle 6.8

* undo unecesary change
  • Loading branch information
benjaminRomano committed Jan 14, 2021
1 parent 33853ff commit a056329
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 4 deletions.
32 changes: 32 additions & 0 deletions source/build.gradle
Original file line number Diff line number Diff line change
@@ -1,3 +1,35 @@
ext {
isCi = 'true' == System.getenv('CI')
ciBuildNumber = System.getenv('BUILD_NUM')

workingBranch = {
'git rev-parse --abbrev-ref HEAD'.execute([], rootDir).text.trim()
}

shortSha = {
'git rev-parse --short HEAD'.execute([], rootDir).text.trim()
}

isDirty = {
'git describe --dirty'.execute([], rootDir).text.trim().contains('dirty')
}

isReleaseBuild = {
workingBranch().equals('master') && !isDirty()
}

versionName = {
def version = '1.2.19'.concat("-${shortSha()}")
version = isReleaseBuild() ?
version :
version.concat(".${workingBranch().replace('/', '.')}".replace('.HEAD', ''))
if (ciBuildNumber != null) {
version = version.concat(".${ciBuildNumber}")
}
return version
}
}

apply plugin: 'groovy'
apply plugin: 'com.novoda.bintray-release'

Expand Down
10 changes: 8 additions & 2 deletions source/src/main/groovy/com/kezong/fataar/FlavorArtifact.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import org.gradle.api.artifacts.component.ComponentArtifactIdentifier
import org.gradle.api.artifacts.component.ComponentIdentifier
import org.gradle.api.internal.artifacts.DefaultModuleVersionIdentifier
import org.gradle.api.internal.artifacts.DefaultResolvedArtifact
import org.gradle.api.internal.artifacts.ivyservice.resolveengine.artifact.ResolvableArtifact
import org.gradle.api.internal.tasks.TaskDependencyContainer
import org.gradle.api.internal.tasks.TaskDependencyResolveContext
import org.gradle.api.tasks.TaskDependency
Expand All @@ -24,7 +25,7 @@ import javax.annotation.Nullable
*/
class FlavorArtifact {

static DefaultResolvedArtifact createFlavorArtifact(Project project, LibraryVariant variant, ResolvedDependency unResolvedArtifact) {
static ResolvableArtifact createFlavorArtifact(Project project, LibraryVariant variant, ResolvedDependency unResolvedArtifact) {
Project artifactProject = getArtifactProject(project, unResolvedArtifact)
TaskProvider bundleProvider = null;
try {
Expand Down Expand Up @@ -55,7 +56,12 @@ class FlavorArtifact {
taskDependencyResolveContext.add(createTaskDependency(bundleProvider.get()))
}
}
return new DefaultResolvedArtifact(identifier, artifactName, artifactIdentifier, taskDependencyContainer, fileFactory)

if (FatUtils.compareVersion(project.gradle.gradleVersion, "6.8.0") >= 0) {
this.class.classLoader.loadClass("org.gradle.api.internal.artifacts.DefaultResolvableArtifact").newInstance(identifier, artifactName, taskDependencyContainer, fileFactory)
} else {
return new DefaultResolvedArtifact(identifier, artifactName, artifactIdentifier, taskDependencyContainer, fileFactory)
}
} else {
TaskDependency taskDependency = createTaskDependency(bundleProvider.get())
return new DefaultResolvedArtifact(identifier, artifactName, artifactIdentifier, taskDependency, fileFactory)
Expand Down
18 changes: 16 additions & 2 deletions source/src/main/groovy/com/kezong/fataar/VariantProcessor.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,12 @@ import org.gradle.api.Task
import org.gradle.api.artifacts.ResolvedArtifact
import org.gradle.api.artifacts.ResolvedDependency
import org.gradle.api.internal.artifacts.ResolvableDependency
import org.gradle.api.artifacts.result.ResolvedDependencyResult
import org.gradle.api.internal.artifacts.DefaultResolvedArtifact
import org.gradle.api.internal.artifacts.PreResolvedResolvableArtifact
import org.gradle.api.internal.artifacts.ivyservice.resolveengine.artifact.ResolvableArtifact
import org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext
import org.gradle.api.internal.tasks.TaskDependencyContainer
import org.gradle.api.tasks.Copy
import org.gradle.api.tasks.PathSensitivity
import org.gradle.api.tasks.TaskDependency
Expand Down Expand Up @@ -246,6 +251,14 @@ class VariantProcessor {
}
}

private TaskDependencyContainer getTaskDependencyContainer(ResolvableArtifact artifact) {
if (artifact instanceof PreResolvedResolvableArtifact) {
return artifact.builtBy
} else {
return artifact.buildDependency
}
}

/**
* exploded artifact files
*/
Expand All @@ -260,11 +273,12 @@ class VariantProcessor {
AndroidArchiveLibrary archiveLibrary = new AndroidArchiveLibrary(mProject, artifact, mVariant.name)
addAndroidArchiveLibrary(archiveLibrary)
Set<Task> dependencies
if (artifact.buildDependencies instanceof TaskDependency) {

if (getTaskDependencyContainer(artifact) instanceof TaskDependency) {
dependencies = artifact.buildDependencies.getDependencies()
} else {
CachingTaskDependencyResolveContext context = new CachingTaskDependencyResolveContext()
artifact.buildDependencies.visitDependencies(context)
getTaskDependencyContainer(artifact).visitDependencies(context)
if (context.queue.size() == 0) {
dependencies = new HashSet<>()
} else {
Expand Down

0 comments on commit a056329

Please sign in to comment.