Skip to content

Commit f8fd3d3

Browse files
committed
GAP-286 - NoSuchMethodError exception thrown with gradle 4.6
1 parent 0c3aa0e commit f8fd3d3

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

build-info-extractor-gradle/src/main/groovy/org/jfrog/gradle/plugin/artifactory/task/helper/TaskHelperPublications.java

+16-3
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,13 @@
2222
import org.apache.commons.lang.StringUtils;
2323
import org.apache.ivy.core.IvyPatternHelper;
2424
import org.gradle.api.GradleException;
25-
import org.gradle.api.Project;
2625
import org.gradle.api.logging.Logger;
2726
import org.gradle.api.logging.Logging;
2827
import org.gradle.api.publish.Publication;
2928
import org.gradle.api.publish.PublishingExtension;
3029
import org.gradle.api.publish.ivy.IvyArtifact;
3130
import org.gradle.api.publish.ivy.IvyArtifactSet;
3231
import org.gradle.api.publish.ivy.IvyPublication;
33-
import org.gradle.api.publish.ivy.internal.publication.IvyModuleDescriptorSpecInternal;
3432
import org.gradle.api.publish.ivy.internal.publication.IvyPublicationInternal;
3533
import org.gradle.api.publish.ivy.internal.publisher.IvyNormalizedPublication;
3634
import org.gradle.api.publish.ivy.internal.publisher.IvyPublicationIdentity;
@@ -51,6 +49,7 @@
5149

5250
import java.io.File;
5351
import java.io.IOException;
52+
import java.lang.reflect.Method;
5453
import java.util.Map;
5554
import java.util.Set;
5655
import javax.xml.namespace.QName;
@@ -183,7 +182,7 @@ public Set<GradleDeployDetails> getArtifactDeployDetails() {
183182

184183
// First adding the Ivy descriptor (if the build is configured to add it):
185184
if (isPublishIvy()) {
186-
File file = ivyNormalizedPublication.getDescriptorFile();
185+
File file = getIvyDescriptorFile(ivyNormalizedPublication);
187186
DeployDetails.Builder builder = createBuilder(file, publicationName);
188187
if (builder != null) {
189188
PublishArtifactInfo artifactInfo = new PublishArtifactInfo(
@@ -242,6 +241,20 @@ public Set<GradleDeployDetails> getArtifactDeployDetails() {
242241
return deployDetails;
243242
}
244243

244+
private File getIvyDescriptorFile(IvyNormalizedPublication ivy) {
245+
try {
246+
return ivy.getIvyDescriptorFile();
247+
} catch (NoSuchMethodError error) {
248+
// Compatibility with older versions of Gradle:
249+
try {
250+
Method m = ivy.getClass().getMethod("getDescriptorFile");
251+
return (File)m.invoke(ivy);
252+
} catch (Exception e) {
253+
throw new RuntimeException(e);
254+
}
255+
}
256+
}
257+
245258
private void addPublication(Publication publicationObj) {
246259
if (publicationObj instanceof IvyPublication) {
247260
ivyPublications.add((IvyPublication) publicationObj);

gradle/wrapper/gradle-wrapper.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4.1-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

0 commit comments

Comments
 (0)