Deploy an artifact with classifier

Beside the main artifact there can be additional files which are attached to the Maven project. Such attached files can be recognized and accessed by their classifier.

For example: from the following artifact names, the classifier is located between the version and extension name of the artifact.

  • artifact-name-1.0.jar the main jar which contains classes compiled without debugging information (such as linenumbers)
  • artifact-name-1.0-debug.jar the classified jar which contains classes compiled with debugging information, so will be larger
  • artifact-name-1.0-site.pdf a pdf which contains an export of the site documentation.

You can deploy the main artifact and the classified artifacts in a single run. Let's assume the original filename for the documentation is site.pdf:

mvn org.apache.maven.plugins:maven-deploy-plugin:3.1.1:deploy-file -Durl=http://localhost:8081/repomanager/ \
                                                                            -DrepositoryId=some.id \
                                                                            -Dfile=path/to/artifact-name-1.0.jar \
                                                                            -DpomFile=path-to-your-pom.xml \
                                                                            -Dfiles=path/to/artifact-name-1.0-debug.jar,path/to/site.pdf \
                                                                            -Dclassifiers=debug,site \
                                                                            -Dtypes=jar,pdf

If you only want to deploy the debug-jar and want to keep the classifier, you can execute the deploy-file like

mvn org.apache.maven.plugins:maven-deploy-plugin:3.1.1:deploy-file -Durl=http://localhost:8081/repomanager/ \
                                                                            -DrepositoryId=some.id \
                                                                            -Dfile=path-to-your-artifact-jar \
                                                                            -DpomFile=path-to-your-pom.xml \
                                                                            -Dclassifier=bin

Note: By using the fully qualified path of a goal, you're ensured to be using the preferred version of the maven-deploy-plugin. When using mvn deploy:deploy-file its version depends on its specification in the pom or the version of Apache Maven.