2012-07-03 12 views

risposta

6

È possibile partizionare un repository utilizzando destinazioni, privilegi e ruoli del repository come descritto in this Sonatype blog post. L'ho provato qualche mese fa e sembrava funzionare bene.

2

Sotto Nexus 2.0.1, questa è la soluzione che ho elaborato e verificato.

Avvertenze:
Ciò consente di limitare l'opzione "Caricamento artefatto" a una gerarchia di directory.
Questo non è esattamente lo stesso di "deploy" o in congiunzione con "release prepare".

Passi:

  1. Togliere il singolo privilegio di "Artefatto Upload" da tutto ciò che attualmente hanno, che non si vuole avere.

  2. Creare il "target di repository" che include la maschera di directory di cui si desidera fornire l'accesso. Ex. .*/com/mycompany/target-dir/.*
    Doppio controllo della maschera, inizia con l'asterisco di periodo E termina con l'asterisco di periodo.

  3. Creare il "Privilegio di repository" che esegue il mapping al repository: destinazione appena creata. In genere includo il nome del repository in questo repository-nome-privilegio, come "releases.com.mycompany.target-dir". Questo crea le voci CRUD (4) per detta directory.

  4. Successivamente, creare il "Ruolo" in base ai privilegi di repository appena creati (4), più "Caricamento artefatto". Totale di 5 voci per il ruolo. Usa il "Apply Filter" qui per aiutarti a trovare questi elementi. Io chiamo questo ruolo qualcosa come "Upload.Role.Releases.Target-Dir". Anche in questo caso, una volta terminato ci dovrebbero essere 5 voci per questo ruolo:
    Artifact Carica
    com.mycompany.target-dir (creare)
    com.mycompany.target-dir (cancellare)
    com.mycompany.target-dir (leggi)
    com.mycompany.target-dir (update)

    Questo è ciò che vincola il ruolo di caricamento a questo repo.directory.

  5. Creare l'utente se non esiste già, assegnare la password.

  6. Dare all'utente i seguenti ruoli:
    Nexus Deployment
    Repo: Tutti Maven Repositories (Leggi)
    UI: Base privilegi UI
    Upload.Role.Relases.Target-Dir

Hit save e ce l'hai.In seguito, puoi utilizzare lo stesso approccio per creare un nuovo ruolo per altri repository (ad esempio Snapshot o 3rd party) e mantenere la stessa maschera di directory.