Issue
Problem Statement
I am trying to see what versions have been deployed for a specific Maven package in AWS CodeArtifact. I do not have the ability to view anything through the web GUI so I am using the AWS CLI.
When I run the following command aws codeartifact list-packages --domain kickingtires --repository kickingtires
the output looks as follows
PACKAGES maven edu.excelsior.api core
So basically there is one Maven artifact in the kickingtires repository : edu.excelsior.api:core
. I have deployed two versions of this artifact and want to list the versions using the AWS CLI.
I have tried to run the following permutations
aws codeartifact list-package-versions --domain kickingtires --repository kickingtires --format maven --package edu.excelsior.api
aws codeartifact list-package-versions --domain kickingtires --repository kickingtires --format maven --package edu.excelsior.api.core
aws codeartifact list-package-versions --domain kickingtires --repository kickingtires --format maven --package edu.excelsior.api:core
aws codeartifact list-package-versions --domain kickingtires --repository kickingtires --format maven --package "edu.excelsior.api"
aws codeartifact list-package-versions --domain kickingtires --repository kickingtires --format maven --package "edu.excelsior.api.core"
aws codeartifact list-package-versions --domain kickingtires --repository kickingtires --format maven --package "edu.excelsior.api:core"
However the response is always as follows
An error occurred (ResourceNotFoundException) when calling the ListPackageVersions operation: The maven package '$PACKAGE' does not exist in repository 'kickingtires
Question
What is the appropriate value of the --package parameter for the list-package-versions subcommand to retrieve the Maven artifact versions? I have checked the AWS Documentation but it doesn't have a meaningful answer to this question
Solution
This may be too late to be helpful to the original poster, but I just ran into this problem and hopefully my answer will help someone else. In order to target a package that has a namespace (groupId in maven speak), you need to include both --package
(just the package name/artifactId) and --namespace
(the groupId) to the line. You cannot target both with just --package
, at least I couldn't find out how, and you can't look for just the package name without the namespace, it will claim not to find it.
So I believe something like this should work:
aws codeartifact list-package-versions --domain kickingtires --repository kickingtires --format maven --namespace edu.excelsior.api --package core
Hope this help someone some day.
Answered By - Haris Skiadas
Answer Checked By - Robin (JavaFixing Admin)