I am new to nexus, but I did study it quite a bit before creating this topic, however I could not find help anywhere else so I am trying here.
I have a nexus 3 installation (running the official docker image) and I copied a kar image to the deploy folder. Just for reference the kar I am using is the nexus repository composer (GitHub - sonatype-nexus-community/nexus-repository-composer: Composer support for the Nexus Repository Manager (work in progress!)). I can see in the log that there is the plugin deploy, but no further activation.
Since I could not understand what was happening, I rolled out another docker container, using the exact same image and did the deploy using the same file (the file is stored on nexus). This time everything worked fine.
The problem I have is, I need to be able to deploy the bundle on the first container which is on my production environment and it has all my repositories and configurations which I migrated from nexus 2.
Just a bit more information on the first installation, the /nexus-data folder is mapped to a volume which was created when we migrated from nexus2. If I am not mistaken, the first container we used was version 3.12. We have upgraded the container to version 3.21.2, by replacing the container but keeping the nexus-data volume.
Has anyone seen anything similar? Does anyone know how I can fix this or has any pointers to what I should be looking at?
Were you using composer pre-kar or is this your first attempt at it?
I wonder if there was existing stuff in there if it’s now conflicting.
Just a random guess.
I did an attempt to deploy the plugin prior to upgrading to version 3.21.2. But it was made by copying the file to the deploy folder.
I did not try to manually alter any of the configuration files as it was suggested prior to the existence of the deploy folder.
Yes, I tried the “(more) permanent install”, but I did not risk the “(most) permanent install”.
Edit the pom file and set the Nexus Repo version to match your current version (line 18).
Then follow the instructions here for “Installing Bundles Into 3.15.0 and Later”:
Correct me if I am wrong, but altering the pom file would be an action I would take if I was developing a plugin for nexus or building nexus from source.
I am not sure what to do as the plugin I am using already builds into a kar file. The kar file that is built works on a clean nexus3 container, but it does not work on my existing production container, which had data migrated from a nexus2 repository and was upgrade from a previous version.
Is there something I am missing?
The plugin has to be built to match the Nexus Repo version you are running, you can’t count on a plugin built for a different version working. So you should modify the version in the pom to match your current version.
Ok I think I understand what you are saying. I will write the steps I did to get the kar file and if you see anything wrong let me know.
- I got the plugin with a git clone and did a build against version 3.21.
- The kar file that was generated I installed on a container on my desktop using version 3.21.
- for this I user docker cp and did a restart on the container.
- The plugin was deployed correctly, I can see the new type of repository.
- This same kar file I uploaded to the repository (production nexus).
- On the production container (also running version 3.21) I tried to docker cp and restart the container.
- This time, there is a message on the log, but I do not get the new option on the repository.
I checked the bundles installed and the specific bundle does not show on the production environment, but it does on my desktop container.
Thanks for the help, I am really lost here.