[ 
https://issues.apache.org/jira/browse/IVY-1622?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17269251#comment-17269251
 ] 

Björn Kautler commented on IVY-1622:
------------------------------------

I don't know of any official documentation that specifies how the marker has to 
look, just the metadata itself.

 

But I can provide you some tests:

[https://github.com/gradle/gradle/blob/master/subprojects/dependency-management/src/test/groovy/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/IvyXmlModuleDescriptorParserTest.groovy#L693]

[https://github.com/gradle/gradle/blob/master/subprojects/dependency-management/src/test/groovy/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/IvyXmlModuleDescriptorParserTest.groovy#L710]

[https://github.com/gradle/gradle/blob/master/subprojects/dependency-management/src/test/groovy/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/PomReaderTest.groovy#L1022]

[https://github.com/gradle/gradle/blob/master/subprojects/dependency-management/src/test/groovy/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/PomReaderTest.groovy#L1039]

There is an old format
 {{<!-- do-not-remove: published-with-gradle-metadata -->}}
 and a new format
 {{<!-- do_not_remove: published-with-gradle-metadata -->}}
because the semantics of the marker slightly evolved between Gradle 5 and 
Gradle 6.

 

And here the constants defining them:

[https://github.com/gradle/gradle/blob/master/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/MetaDataParser.java#L28]

[https://github.com/gradle/gradle/blob/master/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/MetaDataParser.java#L38]

 

There are also some pom and ivy files in the repo containing the marker.

 

And here the code evaluating it:

[https://github.com/gradle/gradle/blob/master/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/IvyXmlModuleDescriptorParser.java#L1322]

[https://github.com/gradle/gradle/blob/master/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/PomReader.java#L356]

So for poms it has to be in a comment node under the {{project}} tag for ivy 
file it could be anywhere as far as I have seen from a quick look.

 

And here the code generating it:

[https://github.com/gradle/gradle/blob/master/subprojects/ivy/src/main/java/org/gradle/api/publish/ivy/internal/publisher/IvyDescriptorFileGenerator.java#L62]

[https://github.com/gradle/gradle/blob/master/subprojects/maven/src/main/java/org/gradle/api/publish/maven/internal/tasks/MavenPomFileGenerator.java#L83]

So for ivy it is always generated in front of the  {{info}} tag and for poms it 
is always generated in front of the {{modelVersion}} tag.

> Support for Gradle Module Metadata in install task
> --------------------------------------------------
>
>                 Key: IVY-1622
>                 URL: https://issues.apache.org/jira/browse/IVY-1622
>             Project: Ivy
>          Issue Type: Improvement
>    Affects Versions: 2.5.0
>            Reporter: Björn Kautler
>            Priority: Major
>
> Gradle since some time introduced its own metadata file for artifacts, as 
> poms were simply not rich enough and not extensible.
> How it works is, that in the pom or ivy file a reference to the metadata file 
> is present. If the resolver of Gradle finds this reference, it uses the 
> metadata file.
> We use the Ivy install task to assemble an internal Ivy repository from 
> public Maven or ivy repositories. But this means, that the Gradle module 
> metadata is lost which is a real pity. 
> It would be nice if the Ivy install task could translate this reference to 
> the produced ivy file and if found also download the module metadata file.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to