Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Maven3] multi-repository: cercare nei giusti repository

    Salve,

    non so se si possa parlare qui di Maven, ma penso di si.

    In ottica aziendale ho installato un repository maven, usando un prodotto commerciale, per gestire releases e snapshots interni dell'azienda e dipendenze tra progetti interni. Quindi, dopo aver configurato settings.xml, adesso posso usare sia il repo ufficiale di maven che i nostri repository privati. Ho notato che maven, quando va a scaricare le dipendenze, prova a cercare le dipendenze che si trovano solo sul repository pubblico anche sui miei privati. ad esempio, prova a scaricare junit anche dai miei di repository dove ovviamente junit non è presente. E questo lo fa per tutti i pacchetti e i plugin

    Ora, non che la cosa sia particolarmente problematica, è che ci mette comunque parecchio tempo a risolvere le dipendenze perchè, ad esempio, la stessa dipendenza la cerca in 4 repository prima di arrivare a quello di maven. Ovviamente, dopo una prima risoluzione, il problema non si pone piu. Ma sulla macchina di CI (Jenkins) dove ho settato il cleanup del repository, ogni volta lo stesso job ci mette parecchio tempo ad eseguirsi per via della latenza dei download

    La mia domanda quindi è la seguente: è possibile dire a maven "ehi, guardati prima gli index dei vari repository e vedi che pacchetti hanno, così sai già dove andare a scaricare il pacchetto", ovviamente in linguaggio informatico ?

    Grazie mille
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    La mia domanda quindi è la seguente: è possibile dire a maven "ehi, guardati prima gli index dei vari repository e vedi che pacchetti hanno, così sai già dove andare a scaricare il pacchetto", ovviamente in linguaggio informatico ?
    Maven cerca nei repository con una logica ben precisa: prima quelli che eventualmente sono dichiarati nel POM del progetto, poi in Parent POM (se ci sono, se il tuo progetto è fatto a sotto-moduli) e poi nel Super POM (che è quello "cablato" dentro Maven).

    Se vuoi vedere l'ordine risultante che viene fuori, puoi chiedere di vedere il effective POM, il comando è:

    mvn help:effective-pom

    Di base quindi il Central Repository è sempre l'ultimo in cui va a cercare, perché è nel Super POM. Ma se vuoi puoi cambiare l'ordine, basta che (ri)dichiari il Central Repository prima dei tuoi repository.

    codice:
    <repositories>
        <repository>
            <id>central</id>
            <name>Central Repository</name>
            <url>http://repo.maven.apache.org/maven2</url>
            <layout>default</layout>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    
        <repository>
            <id>tuoRepository</id>
            <name> .... </name>
            <url> .... </url>
        </repository>
    </repositories>

    In questo modo cerca es. JUnit prima nel Central Repository (e c'è) e poi solo per i tuoi artifact specifici li andrà a cercare nel tuo repository.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    va moooooolto meglio così grazie mille
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.