Come faccio a distribuire un file di Artifactory utilizzando la riga di comando?

Ho speso più tempo su questo che io ammettere. Sto cercando di distribuire un file in mio Artifactory server dalla riga di comando. Sto facendo questo utilizzando gradle perché questo è il modo in cui gestiamo il nostro java build. Tuttavia, questo artefatto è un NDK/JNI costruire un artefatto, e non fa uso di gradle.

Così ho solo bisogno di più semplice gradle script per fare il deploy. Qualcosa di equivalente a:

scp <file> <remote>

Attualmente sto cercando di utilizzare il artifactory plugin, e non sto avendo po ‘ di fortuna nell’individuazione di un punto di riferimento per il plugin.

 

6 Replies
  1. 40

    curl POST non ha funzionato per me . METTERE funzionato correttamente . L’utilizzo è

    curl -X PUT $SERVER/$PATH/$FILE --data-binary @localfile
    

    esempio :

    $ curl -v --user username:password --data-binary @local-file -X PUT "http://<artifactory server >/artifactory/abc-snapshot-local/remotepath/remotefile"
    
    • Ho un ‘401: non autorizzato”, non importa quello che faccio. Ho provato diversi utenti le credenziali che opera attraverso teamcity, ma niente da fare.
    • Il vostro 401, potrebbe essere dovuto al tipo di autorizzazione il server utilizza. Potrebbe essere necessario impostare l’autenticazione dell’intestazione del PUT. Qualcosa di simile -H “Autorizzazione: di Base YXBpdXNlcjphcGlwd2Q=”
    • Nota che artifactory non consente di gestire il checksum automaticamente. Li hanno generati, il “Checksum” intestazione deve essere incluso. cioè curl -H"X-Checksum-Md5:8a0daa40b5b6683897fa319b6a67c090" -H"X-Checksum-Sha1:586d62d7f56b58dc12d32800ba025b424cfd7429" ....
  2. 11

    Invece di utilizzare il curl comando, mi consiglia di utilizzare il jrog CLI.

    Scaricare da qui – https://www.jfrog.com/getcli/ e utilizzare il comando seguente (assicurarsi che il file sia eseguibile) –

    ./jfrog rt u <file-name> <upload-path>
    

    Ecco un semplice esempio:

    ./jfrog rt u sample-service-1.0.0.jar libs-release-local/com/sample-service/1.0.0/
    

    Si chiederà le credenziali e l’repo URL per la prima volta.

    Si può fare un sacco di altre cose con questo strumento della CLI, controllare le istruzioni dettagliate qui – https://www.jfrog.com/confluence/display/RTF/JFrog+CLI.

  3. 9

    La documentazione per il artifactory plugin può essere trovato, come previsto, in Artifactory Guida Per L’Utente.

    Si prega di notare che esso è consigliato di usare il nuovo plugin – artifactory pubblicare, che supporta il nuovo Gradle modello di pubblicazione.

    Per quanto riguarda il caricamento dalla riga di comando, non c’è bisogno di gradle per che. È possibile eseguire un INSERIRE semplici query utilizzando CURL o qualsiasi altro strumento.

    E, naturalmente, se si desidera solo per ottenere il vostro file in Artifactory, si può sempre distribuire tramite l’interfaccia utente.

    • Purtroppo la documentazione è carente. Per esempio, non c’è nessun riferimento per il DSL utilizzato, e l’esempio di script di errori di sintassi in esso. La distribuzione mediante l’interfaccia utente non è un’opzione, in quanto questo è per IC. Attualmente sto lavorando su REST API.
    • Inoltre, non è chiaro come compilare il pom maven metadati API.
    • Io non sono sicuro perché il downvote. Ho risposto alle tue domande con precisione, sia come distribuire da cmd (con il RIPOSO) e dove c’è il riferimento al plugin (nel manuale). Sembra che tu ti volevo chiedere qualcos’altro, va bene, ma non sono sicuro di come le risposte sono male.
    • I documenti di guida di ogni valore possibile in DSL. Cosa ti manca?
    • La generazione di un file POM non è documentato nella documentazione perché non è disponibile tramite il RIPOSO. Dovrete scrivere un semplice gradle costruire con maven-pubblicare per raggiungere questo obiettivo. Sarò felice di condurti, ma penso che ne vale la pena la sua stessa domanda.
    • Indicando sparse documentazione non è rispondere a una domanda. Avete un esempio di script (gradle, ecc) che upload e generare un pom?
    • Come per la documentazione, confrontare il RESTO documentazione: jfrog.com/confluence/display/RTF/Artifactory+RESTO+API per la artifactory-pubblicare la documentazione: jfrog.com/confluence/display/RTF/…. Uno è chiaramente ben documentato, e l’altro no.
    • Downvoted perché questa risposta, in realtà, non forniscono alcuna informazione utile.

  4. 5

    Guarda le Artifactory API REST, per lo più non è possibile utilizzare scp di comando, utilizzare invece il curl comando verso API REST.

    $ curl -X POST $SERVER/$PATH/$FILE --data @localfile
    

    Soprattutto sembra

    $ curl -X POST http://localhost:8081/artifactory/abc-snapshot-local/remotepath/remotefile --data @localfile
    

    Il scp comando viene utilizzato solo se si vuole veramente per accedere all’interno della cartella che è gestito da artifactory

  5. 2

    Ironia della sorte, sto rispondendo alla mia domanda. Dopo un paio di ore di lavoro sul problema, ho trovato un esempio di progetto su github: https://github.com/JFrogDev/project-examples

    Il progetto include anche un semplice script bash per fare l’esatta distribuzione/copia da linea di comando che cercavo, così come un paio di meno semplice di gradle script.

  6. 1
    $ curl -v -X PUT                    \
      --user username:password          \
      --upload-file <path to your file> \
      http://localhost:8080/artifactory/libs-release-local/my/jar/1.0/jar-1.0.jar
    
    • È possibile scaricare un file da oneartifactory dal comando batch .?
    • è possibile utilizzare wget: qualcosa di simile: wget –user=”<utente>” –password=”<password>” –no-check-certificate -P .<percorso di download>-r –no-parent –reject “index.html*” –no-parent –recursive –relativo –level=1 –no-directory localhost:8080/artifactory/libs-release-locale/my/jar/1.0/…

Lascia un commento