Search code examples
nexus

Upload artifacts to Nexus, without Maven


I have a non-Java project that produces a versioned build artifact, and I want to upload this to a Nexus repository. Because the project isn't Java, it doesn't use Maven for builds. And I'd rather not introduce Maven/POM files just to get files into Nexus.

The links on blogs to the Nexus REST API all end up at a sign-in wall, with no "create user" link that I can see.

So, what's the best (or any reasonable) way to upload build artifacts to a Nexus repository without Maven? "bash + curl" would be great, or even a Python script.


Solution

  • Have you considering using the Maven command-line to upload files?

    mvn deploy:deploy-file \
        -Durl=$REPO_URL \
        -DrepositoryId=$REPO_ID \
        -DgroupId=org.myorg \
        -DartifactId=myproj \
        -Dversion=1.2.3  \
        -Dpackaging=zip \
        -Dfile=myproj.zip
    

    This will automatically generate the Maven POM for the artifact.

    Update

    The following Sonatype article states that the "deploy-file" maven plugin is the easiest solution, but it also provides some examples using curl:

    https://support.sonatype.com/entries/22189106-How-can-I-programatically-upload-an-artifact-into-Nexus-