Compatibility Matrix:
Plugin Version | Nexus Repository Version |
---|---|
v1.0.2 | <3.9.0 |
v1.0.5 | 3.9.0 |
v1.0.7 | 3.11.0 |
v1.0.8 | 3.13.0 |
v1.0.9 | 3.14.0 |
-
Clone the project:
git clone https://github.com/sonatype-nexus-community/nexus-repository-apt
-
Build the plugin:
cd nexus-repository-apt mvn
docker build -t nexus-repository-apt:3.14.0 .
docker run -d -p 8081:8081 --name nexus-repo nexus-repository-apt:3.14.0
For further information like how to persist volumes check out the GitHub Repo for the official Nexus Repository 3 Docker image.
The application will now be available from your browser at http://localhost:8081
-
Stop Nexus:
service nexus stop
or
cd <nexus_dir>/bin ./nexus stop
-
Copy the bundle into
<nexus_dir>/system/net/staticsnow/nexus-repository-apt/1.0.9/nexus-repository-apt-1.0.9.jar
-
Make the following additions marked with + to
<nexus_dir>/system/org/sonatype/nexus/assemblies/nexus-core-feature/3.x.y/nexus-core-feature-3.x.y-features.xml
<feature version="x.y.z" prerequisite="false" dependency="false">nexus-repository-maven</feature> + <feature version="1.0.9" prerequisite="false" dependency="false">nexus-repository-apt</feature> </feature>
And
+ <feature name="nexus-repository-apt" description="net.staticsnow:nexus-repository-apt" version="1.0.9"> + <details>net.staticsnow:nexus-repository-apt</details> + <bundle>mvn:net.staticsnow/nexus-repository-apt/1.0.9</bundle> + <bundle>mvn:org.apache.commons/commons-compress/1.18</bundle> + <bundle>mvn:org.tukaani/xz/1.8</bundle> + </feature> </features>
This will cause the plugin to be loaded and started with each startup of Nexus Repository.
curl -u user:pass -X POST -H "Content-Type: multipart/form-data" --data-binary "@package.deb" http://nexus_url:8081/repository/repo_name/
curl -u user:pass -X MKCOL http://nexus_url:8081/repository/repo_name/snapshots/$SNAPSHOT_ID
See https://help.github.com/articles/generating-a-new-gpg-key/
To sign packages use; gpg --export-secret-key --armor <Name or ID>
and passphrase in the hosted repository configuration.
The private armored key should look like this:
-----BEGIN PGP PRIVATE KEY BLOCK-----
...Base64 key...
-----END PGP PRIVATE KEY BLOCK-----
It is worth noting that this is NOT SUPPORTED by Sonatype, and is a contribution of Mike Poindexter's plus us to the open source community (read: you!)
Remember:
- Use this contribution at the risk tolerance that you have
- Do NOT file Sonatype support tickets related to APT support
- DO file issues here on GitHub, so that the community can pitch in
Phew, that was easier than I thought. Last but not least of all:
Have fun building and using this plugin on the Nexus platform, we are glad to have you here!
Looking to contribute to our code but need some help? There's a few ways to get information:
- Chat with us on Gitter
- Check out the Nexus3 tag on Stack Overflow
- Check out the Nexus Repository User List