Ho già trovato una risposta qui su Stack Overflow su come includere un JAR di terze parti in un progetto senza installarlo in un "repository locale":Avere un barattolo di terze parti incluso nel barattolo ombreggiato Maven senza aggiungerlo al repository locale
Can I add jars to maven 2 build classpath without installing them?
Ma, quando uso il plugin Ombra Maven per creare un JAR che include tutte le dipendenze del progetto, nonché, il 3 ° JAR partito non è incluso automaticamente.
Come posso fare in modo che Maven Shade Plugin aggiunga un JAR di terze parti al JAR ombreggiato?
Come per la risposta ottenuta, l'ho fatto funzionare. Quello che ho fatto è stato, ha aggiunto questo frammento di codice all'inizio del mio pom.xml:
<repositories>
<repository>
<id>repo</id>
<url>file://${basedir}/repo</url>
</repository>
</repositories>
poi aggiunti una dipendenza per il mio progetto, anche a pom.xml:
<dependencies>
<dependency>
<groupId>dummy</groupId>
<artifactId>dummy</artifactId>
<version>0.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
E poi corse un comando linea per aggiungere un pacchetto a 'repo':
mvn org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file
-Dfile=<my-jar>.jar -DgroupId=dummy -DartifactId=dummy
-Dversion=0.0.0 -Dpackaging=jar -DlocalRepositoryPath=`pwd`/repo/
(. non sono sicuro se il percorso di pronti contro termine deve essere un percorso completo, ma non ha voluto correre rischi)
Il contenuto della sottodirectory pronti contro termine è ora:
repo/dummy/dummy/0.0.0/dummy-0.0.0.jar
repo/dummy/dummy/0.0.0/dummy-0.0.0.pom
repo/dummy/dummy/maven-metadata-local.xml
ora posso controllare questo per il controllo di versione, e non hanno dipendenze locali o remoti.
Il problema non è che la gente * come * di utilizzare il metodo sbagliato, o lo fanno per la gente dispetto - il problema è che nessuno di questa roba è documentata in modo chiaro e ricette sono date su internet per raggiungere queste cose. È impossibile coinvolgere le persone grossolane nella creazione di "repository aziendali" o utilizzare Maven come non avendo documentazione per i casi comuni che le persone incontrano, troveranno sempre un modo. – Nakedible
@Nakedible Bene, immagino che tu abbia ragione riguardo alla documentazione di una soluzione pratica. Per quanto riguarda lo scope 'system', forse i Maven dovrebbero rendere più chiaro che non è una soluzione aggiungere dipendenze" casuali "a una build. Ma lo scopo 'system' è [documentato] (http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope). –
un altro problema è che non esiste un modo semplice per usare i jar locali: ammettilo, l'ambito del sistema potrebbe essere sbagliato e far muovere le persone di mente corrotta, ma i principianti devono portare le cose al lavoro. un progetto è previsto per domani, 10 minuti, e ho bisogno di un vaso ombreggiato pronto per allora. dover creare un repo fa rotolare i miei occhi all'indietro nella mia testa. –