diff --git a/README.md b/README.md
index 766d98d63..d77ffc0d7 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@ The build information is sent to Artifactory in json format.
## Building and Testing the Sources
The code is built using Gradle and includes integration tests.
-It must run using JDK 8 and Gradle 4.6. If you are using different gradle version you can use the provided gradle wrapper.
+It must run using JDK 8 and Gradle 5.6.2. If you are using different gradle version you can use the provided gradle wrapper.
In order to run tests the following environment variable must be provide:
```
export BITESTS_ARTIFACTORY_URL='http://localhost:8081/artifactory'
diff --git a/build-info-extractor-gradle/src/main/groovy/org/jfrog/gradle/plugin/artifactory/task/helper/TaskHelperPublications.java b/build-info-extractor-gradle/src/main/groovy/org/jfrog/gradle/plugin/artifactory/task/helper/TaskHelperPublications.java
index 52407fcd7..78376e5b4 100644
--- a/build-info-extractor-gradle/src/main/groovy/org/jfrog/gradle/plugin/artifactory/task/helper/TaskHelperPublications.java
+++ b/build-info-extractor-gradle/src/main/groovy/org/jfrog/gradle/plugin/artifactory/task/helper/TaskHelperPublications.java
@@ -27,6 +27,7 @@
import org.gradle.api.publish.Publication;
import org.gradle.api.publish.PublicationArtifact;
import org.gradle.api.publish.PublishingExtension;
+import org.gradle.api.publish.internal.PublicationArtifactSet;
import org.gradle.api.publish.internal.PublicationInternal;
import org.gradle.api.publish.ivy.IvyArtifact;
import org.gradle.api.publish.ivy.IvyArtifactSet;
@@ -35,7 +36,6 @@
import org.gradle.api.publish.ivy.internal.publisher.IvyNormalizedPublication;
import org.gradle.api.publish.ivy.internal.publisher.IvyPublicationIdentity;
import org.gradle.api.publish.maven.MavenArtifact;
-import org.gradle.api.publish.maven.MavenArtifactSet;
import org.gradle.api.publish.maven.MavenPublication;
import org.gradle.api.publish.maven.internal.publication.MavenPublicationInternal;
import org.gradle.api.publish.maven.internal.publisher.MavenNormalizedPublication;
@@ -202,19 +202,22 @@ public Set getArtifactDeployDetails() {
Map extraInfo = ivyPublication.getDescriptor().getExtraInfo().asMap();
// First adding the Ivy descriptor (if the build is configured to add it):
+ File ivyFile = getIvyDescriptorFile(ivyNormalizedPublication);
if (isPublishIvy()) {
- File file = getIvyDescriptorFile(ivyNormalizedPublication);
- DeployDetails.Builder builder = createBuilder(file, publicationName);
+ DeployDetails.Builder builder = createBuilder(ivyFile, publicationName);
if (builder != null) {
PublishArtifactInfo artifactInfo = new PublishArtifactInfo(
- projectIdentity.getModule(), "xml", "ivy", null, extraInfo, file);
+ projectIdentity.getModule(), "xml", "ivy", null, extraInfo, ivyFile);
addIvyArtifactToDeployDetails(deployDetails, publicationName, projectIdentity, builder, artifactInfo);
}
}
- IvyArtifactSet artifacts = ivyPublication.getArtifacts();
+ // Second adding all artifacts, skipping the ivy file
+ PublicationArtifactSet artifacts = ivyPublicationInternal.getPublishableArtifacts();
for (IvyArtifact artifact : artifacts) {
File file = artifact.getFile();
+ // Skip the ivy file
+ if (file.equals(ivyFile)) continue;
DeployDetails.Builder builder = createBuilder(file, publicationName);
if (builder == null) continue;
PublishArtifactInfo artifactInfo = new PublishArtifactInfo(
@@ -245,22 +248,31 @@ public Set getArtifactDeployDetails() {
addMavenArtifactToDeployDetails(deployDetails, publicationName, builder, artifactInfo, mavenPublication);
}
}
+ // Second adding the main artifact of the publication, if present
+ if (mavenNormalizedPublication.getMainArtifact() != null) {
+ createPublishArtifactInfoAndAddToDeployDetails(mavenNormalizedPublication.getMainArtifact(), deployDetails, mavenPublication, publicationName);
+ }
- MavenArtifactSet artifacts = mavenPublication.getArtifacts();
+ // Third adding all additional artifacts - includes Gradle Module Metadata when produced
+ Set artifacts = mavenNormalizedPublication.getAdditionalArtifacts();
for (MavenArtifact artifact : artifacts) {
- File file = artifact.getFile();
- DeployDetails.Builder builder = createBuilder(file, publicationName);
- if (builder == null) continue;
- PublishArtifactInfo artifactInfo = new PublishArtifactInfo(
- mavenPublication.getArtifactId(), artifact.getExtension(),
- artifact.getExtension(), artifact.getClassifier(),
- file);
- addMavenArtifactToDeployDetails(deployDetails, publicationName, builder, artifactInfo, mavenPublication);
+ createPublishArtifactInfoAndAddToDeployDetails(artifact, deployDetails, mavenPublication, publicationName);
}
}
return deployDetails;
}
+ private void createPublishArtifactInfoAndAddToDeployDetails(MavenArtifact artifact, Set deployDetails, MavenPublication mavenPublication, String publicationName) {
+ File file = artifact.getFile();
+ DeployDetails.Builder builder = createBuilder(file, publicationName);
+ if (builder == null) return;
+ PublishArtifactInfo artifactInfo = new PublishArtifactInfo(
+ mavenPublication.getArtifactId(), artifact.getExtension(),
+ artifact.getExtension(), artifact.getClassifier(),
+ file);
+ addMavenArtifactToDeployDetails(deployDetails, publicationName, builder, artifactInfo, mavenPublication);
+ }
+
private File getIvyDescriptorFile(IvyNormalizedPublication ivy) {
try {
return ivy.getIvyDescriptorFile();