Maven, come aggiungere librerie che non sono disponibili in pronti contro termine

StackOverflow https://stackoverflow.com/questions/2479046

  •  21-09-2019
  •  | 
  •  

Domanda

Ho un progetto Maven che ha un insieme di dipendenze di libreria che non sono disponibili tramite qualsiasi repository Maven. Come posso aggiungere queste librerie per il pom? Io voglio fare questo in modo che quando corro 'eclisse mvn: Eclipse'. Doesnt rimuovere quelle librerie dal classpath eclisse

È stato utile?

Soluzione

Ci sono 3 possibilità:

  • Aggiungi le librerie al repository locale tramite install:install-file (ovviamente, questo non è portatile, non sarà in grado di costruire il progetto su un altro computer senza fare lo stesso).
  • Installa ed eseguire un "repository aziendale", come Nexus, Archiva, o Artifactory e aggiungi le librerie tramite deploy:deploy-file.
  • repository di setup di un file come descritto in questo precedente risposta e mettere le librerie in là.

Poi, dichiarare le librerie nella tua pom come qualsiasi altra dipendenza.

Altri suggerimenti

È possibile dichiarare come una dipendenza con ambito system.

<project>
...
 <dependencies>
   <dependency>
     <groupId>sun.jdk</groupId>
     <artifactId>tools</artifactId>
     <version>1.5.0</version>
     <scope>system</scope>
     <systemPath>${java.home}/../lib/tools.jar</systemPath>
   </dependency>
 </dependencies>
 ...
</project>

Si possono includere con il progetto in una sotto-directory (forse lib /). È inoltre possibile fornire .bat e / o file .sh che contengono tutte le chiamate appropriate al Maven-install-plugin necessari per ciascun membro del progetto (o ENV server) per aggiungere questi vasi al repo locale.

Questo approccio permette nuovi membri del progetto di alzarsi e funzionante in fretta, senza dover investire parecchie ore nella creazione di un nuovo repo pubblica per il progetto o la squadra.

Non si puo 'aggiungerli al pom'. Dovete mettere in qualche repo. Si possono mettere nel repository locale con il Maven-install-plugin, come suggerito dal messaggio di errore. Oppure è possibile distribuire in una copia locale del Nexus o qualcosa di simile.

Recentemente ho creato una piccola interfaccia utente Util per installare le librerie a voi repository locale. Funziona allo stesso modo di install:install-file.

https://github.com/escv/maven-install-ui

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top