Trying to build a custom plugin

I’m new to nexus and this community so sorry if there are obvious things I’ve missed but I’m trying to build a custom plugin for a custom format (based on zypper).

I found this guide: nexus-development-guides/ at master · sonatype-nexus-community/nexus-development-guides · GitHub and have followed that without success: The plugin builds/deploys but never shows up in the nexus UI when I try to create a new repository.

I’ve also tried reverse engineering a couple of different plugins (raw, composer, etc) and I managed to get the plugin to at least show up in the UI but only the proxy-version is clickable.

So obviously I’m missing something here, I’ve googled like a maniac but haven’t found a good guide on how to write a plugin for nexus.

Am I missing something obvious? Is there any guides somewhere that might help me that I haven’t found?

Any help is very much appreciated!

Best regards

Probably your first step would be to narrow down where the problem is:

  • figure out if your bundle is part of nexus (i.e. through bundles UI or logs)
  • Check for logged errors during startup
  • If your bundle is included and isn’t causing errors you probably need to do some sort of line-by-line comparison with public code.

Yeah, the bundle is part of nexus. I can see in the logs the plugin being deployed and activated without errors.

Is there any bare bones plugin I could reverse engineer? Tried doing that with one of the bigger ones but without any success really

I don’t think that development guide covers adding to the UI. See how the compose plugin adds itself to the UI via javascript code. There are three recipe files that declare the UI for the different repository types.

You were completely right, after adding those and adding the extjs-maven-plugin to the pom-file I got it working, thank you very much @mmartz :slight_smile:

There is also a maven archetype for generating a format plugin - GitHub - sonatype-nexus-community/nexus-format-archetype: Archetype for creating Nexus format plugin