|
22 | 22 | import org.apache.commons.lang.StringUtils;
|
23 | 23 | import org.apache.ivy.core.IvyPatternHelper;
|
24 | 24 | import org.gradle.api.GradleException;
|
25 |
| -import org.gradle.api.Project; |
26 | 25 | import org.gradle.api.logging.Logger;
|
27 | 26 | import org.gradle.api.logging.Logging;
|
28 | 27 | import org.gradle.api.publish.Publication;
|
29 | 28 | import org.gradle.api.publish.PublishingExtension;
|
30 | 29 | import org.gradle.api.publish.ivy.IvyArtifact;
|
31 | 30 | import org.gradle.api.publish.ivy.IvyArtifactSet;
|
32 | 31 | import org.gradle.api.publish.ivy.IvyPublication;
|
33 |
| -import org.gradle.api.publish.ivy.internal.publication.IvyModuleDescriptorSpecInternal; |
34 | 32 | import org.gradle.api.publish.ivy.internal.publication.IvyPublicationInternal;
|
35 | 33 | import org.gradle.api.publish.ivy.internal.publisher.IvyNormalizedPublication;
|
36 | 34 | import org.gradle.api.publish.ivy.internal.publisher.IvyPublicationIdentity;
|
|
51 | 49 |
|
52 | 50 | import java.io.File;
|
53 | 51 | import java.io.IOException;
|
| 52 | +import java.lang.reflect.Method; |
54 | 53 | import java.util.Map;
|
55 | 54 | import java.util.Set;
|
56 | 55 | import javax.xml.namespace.QName;
|
@@ -183,7 +182,7 @@ public Set<GradleDeployDetails> getArtifactDeployDetails() {
|
183 | 182 |
|
184 | 183 | // First adding the Ivy descriptor (if the build is configured to add it):
|
185 | 184 | if (isPublishIvy()) {
|
186 |
| - File file = ivyNormalizedPublication.getDescriptorFile(); |
| 185 | + File file = getIvyDescriptorFile(ivyNormalizedPublication); |
187 | 186 | DeployDetails.Builder builder = createBuilder(file, publicationName);
|
188 | 187 | if (builder != null) {
|
189 | 188 | PublishArtifactInfo artifactInfo = new PublishArtifactInfo(
|
@@ -242,6 +241,20 @@ public Set<GradleDeployDetails> getArtifactDeployDetails() {
|
242 | 241 | return deployDetails;
|
243 | 242 | }
|
244 | 243 |
|
| 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 | + |
245 | 258 | private void addPublication(Publication publicationObj) {
|
246 | 259 | if (publicationObj instanceof IvyPublication) {
|
247 | 260 | ivyPublications.add((IvyPublication) publicationObj);
|
|
0 commit comments