Description
We need a new mechanism for storing and loading the version of a tool and its dependencies.
ProtoData currently uses version.txt
(stored in resources) for an artifact version. This approach would not work if components with different versions are merged into a fat JAR.
A better solution would be to use MANIFEST.MF
file. The standard tag Implementation-Version
tag would be used for keeping a version.
Dependencies could be stored in a custom tag called Depends-On
. A value for the tag should be formed after this pattern maven:$group:$artifact:$version
. Notice the maven:
prefix coming before GAV coordinates. It 1) explains the format of the value 2) allows for extensibility—there could be other formats of values coming with a different prefix.
After this issue is addressed, the io.spine.tools.gradle.DependencyVersions
should be deprecated. Version management in ProtoData should be updated too.