emicklei / artreyu-nexus

plugin for artreyu, tool for artifact assemly, that uses a Sonatype Nexus repository
MIT License
1 stars 1 forks source link

we have some repos where all are snapshots and all releases #1

Open mcqueenorama opened 9 years ago

mcqueenorama commented 9 years ago

How would you advise me to patch this to support different directory structures? The only difference is the releases/snapshots convention you've got.

mcqueenorama commented 9 years ago

How about supporting the same plugin for different repos, like this nexus plugin used several different repos. For example, our Nexus has many repos in it. In the yaml config I want to give them all their proper names, but the name is directly linked to the plugin. It looks like as it is now, the user would need to specify different apis to have this effect.

In the config yaml file I add a new optional field, plugin. If no plugin is specified, the default existing behaviour. If plugin is specified, then use name as name for the yaml section only, and use the driver field value to identify the plugin.

If this were done, I could use a repo names my_releases, and my_snapshots, and both use the nexus plugin.

emicklei commented 9 years ago

I like your proposal regarding the plugin to support multiple repos. I might even want to break the current behavior ; for this to decide I want to explore the idea in code.

emicklei commented 8 years ago

say we have repo and plugin definitions.

each repo definition can optionally specify that it requires some plugin. If no plugin is specified then artifacts are stored only on the local filesystem.

plugins will look in the .artreyu file for credentials if needed. repos definitions have the url. to make autodiscover work, we could have a snapshots field.

api: 1

plugins:
- name:  nexus
  user:     admin
  password: ****    

repositories:
- name:     local
  path:     /Users/you/artreyu  

- name:     nexus-releases
  plugin:  nexus
  snapshots: false
  url:      https://yours.com/nexus
  path:     /content/repositories/releases

- name:     nexus-snapshots
  plugin:  nexus
  snapshots: true
  url:      https://yours.com/nexus
  path:     /content/repositories/snapshots