Skip to content

Commit a91e3a9

Browse files
ljacometyahavi
authored andcommitted
GAP-305 - Add publishing of metadata (.module file) to the plugin
1 parent f274260 commit a91e3a9

File tree

2 files changed

+27
-15
lines changed

2 files changed

+27
-15
lines changed

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ The build information is sent to Artifactory in json format.
88
## Building and Testing the Sources
99

1010
The code is built using Gradle and includes integration tests.<br/>
11-
It must run using JDK 8 and Gradle 4.6. If you are using different gradle version you can use the provided gradle wrapper.<br/>
11+
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.<br/>
1212
In order to run tests the following environment variable must be provide:
1313
```
1414
export BITESTS_ARTIFACTORY_URL='http://localhost:8081/artifactory'

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

+26-14
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.gradle.api.publish.Publication;
2828
import org.gradle.api.publish.PublicationArtifact;
2929
import org.gradle.api.publish.PublishingExtension;
30+
import org.gradle.api.publish.internal.PublicationArtifactSet;
3031
import org.gradle.api.publish.internal.PublicationInternal;
3132
import org.gradle.api.publish.ivy.IvyArtifact;
3233
import org.gradle.api.publish.ivy.IvyArtifactSet;
@@ -35,7 +36,6 @@
3536
import org.gradle.api.publish.ivy.internal.publisher.IvyNormalizedPublication;
3637
import org.gradle.api.publish.ivy.internal.publisher.IvyPublicationIdentity;
3738
import org.gradle.api.publish.maven.MavenArtifact;
38-
import org.gradle.api.publish.maven.MavenArtifactSet;
3939
import org.gradle.api.publish.maven.MavenPublication;
4040
import org.gradle.api.publish.maven.internal.publication.MavenPublicationInternal;
4141
import org.gradle.api.publish.maven.internal.publisher.MavenNormalizedPublication;
@@ -202,19 +202,22 @@ public Set<GradleDeployDetails> getArtifactDeployDetails() {
202202
Map<QName, String> extraInfo = ivyPublication.getDescriptor().getExtraInfo().asMap();
203203

204204
// First adding the Ivy descriptor (if the build is configured to add it):
205+
File ivyFile = getIvyDescriptorFile(ivyNormalizedPublication);
205206
if (isPublishIvy()) {
206-
File file = getIvyDescriptorFile(ivyNormalizedPublication);
207-
DeployDetails.Builder builder = createBuilder(file, publicationName);
207+
DeployDetails.Builder builder = createBuilder(ivyFile, publicationName);
208208
if (builder != null) {
209209
PublishArtifactInfo artifactInfo = new PublishArtifactInfo(
210-
projectIdentity.getModule(), "xml", "ivy", null, extraInfo, file);
210+
projectIdentity.getModule(), "xml", "ivy", null, extraInfo, ivyFile);
211211
addIvyArtifactToDeployDetails(deployDetails, publicationName, projectIdentity, builder, artifactInfo);
212212
}
213213
}
214214

215-
IvyArtifactSet artifacts = ivyPublication.getArtifacts();
215+
// Second adding all artifacts, skipping the ivy file
216+
PublicationArtifactSet<IvyArtifact> artifacts = ivyPublicationInternal.getPublishableArtifacts();
216217
for (IvyArtifact artifact : artifacts) {
217218
File file = artifact.getFile();
219+
// Skip the ivy file
220+
if (file.equals(ivyFile)) continue;
218221
DeployDetails.Builder builder = createBuilder(file, publicationName);
219222
if (builder == null) continue;
220223
PublishArtifactInfo artifactInfo = new PublishArtifactInfo(
@@ -245,22 +248,31 @@ public Set<GradleDeployDetails> getArtifactDeployDetails() {
245248
addMavenArtifactToDeployDetails(deployDetails, publicationName, builder, artifactInfo, mavenPublication);
246249
}
247250
}
251+
// Second adding the main artifact of the publication, if present
252+
if (mavenNormalizedPublication.getMainArtifact() != null) {
253+
createPublishArtifactInfoAndAddToDeployDetails(mavenNormalizedPublication.getMainArtifact(), deployDetails, mavenPublication, publicationName);
254+
}
248255

249-
MavenArtifactSet artifacts = mavenPublication.getArtifacts();
256+
// Third adding all additional artifacts - includes Gradle Module Metadata when produced
257+
Set<MavenArtifact> artifacts = mavenNormalizedPublication.getAdditionalArtifacts();
250258
for (MavenArtifact artifact : artifacts) {
251-
File file = artifact.getFile();
252-
DeployDetails.Builder builder = createBuilder(file, publicationName);
253-
if (builder == null) continue;
254-
PublishArtifactInfo artifactInfo = new PublishArtifactInfo(
255-
mavenPublication.getArtifactId(), artifact.getExtension(),
256-
artifact.getExtension(), artifact.getClassifier(),
257-
file);
258-
addMavenArtifactToDeployDetails(deployDetails, publicationName, builder, artifactInfo, mavenPublication);
259+
createPublishArtifactInfoAndAddToDeployDetails(artifact, deployDetails, mavenPublication, publicationName);
259260
}
260261
}
261262
return deployDetails;
262263
}
263264

265+
private void createPublishArtifactInfoAndAddToDeployDetails(MavenArtifact artifact, Set<GradleDeployDetails> deployDetails, MavenPublication mavenPublication, String publicationName) {
266+
File file = artifact.getFile();
267+
DeployDetails.Builder builder = createBuilder(file, publicationName);
268+
if (builder == null) return;
269+
PublishArtifactInfo artifactInfo = new PublishArtifactInfo(
270+
mavenPublication.getArtifactId(), artifact.getExtension(),
271+
artifact.getExtension(), artifact.getClassifier(),
272+
file);
273+
addMavenArtifactToDeployDetails(deployDetails, publicationName, builder, artifactInfo, mavenPublication);
274+
}
275+
264276
private File getIvyDescriptorFile(IvyNormalizedPublication ivy) {
265277
try {
266278
return ivy.getIvyDescriptorFile();

0 commit comments

Comments
 (0)