-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Store dependency versions in MANIFEST.MF
file
#19
Comments
We have a Gradle script plugin which writes version information loaded by |
Consider adding the following attributes to the manifest:
|
In addition to version we need to store what's actually in the JAR. That is, somehow reference the artifact for which we store and later obtain the version. JAR Manifest specification gives the following example of a JAR manifest:
What we need to store is a group-artifact pair (in terms of Maven). The version is going to be stored separately, in the I don't think it is safe to use The candidates for our task are
@armiol, please have a look and let me know what you think of this. |
Other attributes to consider for manifest: https://andresalmiray.com/customize-jar-manifest-entries-with-maven-gradle/ |
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 tagImplementation-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 patternmaven:$group:$artifact:$version
. Notice themaven:
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.References:
MANIFEST.MF
filesThe text was updated successfully, but these errors were encountered: