Voglio che il jar sia in una libreria di terze parti nel controllo del codice sorgente, e collego ad esso tramite il percorso relativo dal file pom.xml.
Se lo vuoi davvero (capisci, se non puoi usare un repository aziendale), allora il mio consiglio sarebbe di usare un "repository di file" locale per il progetto e di non usare una systemdipendenza con ambito. L' systemambito dovrebbe essere evitato, tali dipendenze non funzionano bene in molte situazioni (ad es. Nell'assemblaggio), causano più problemi che benefici.
Quindi, invece, dichiarare un repository locale al progetto:
<repositories>
<repository>
<id>my-local-repo</id>
<url>file://${project.basedir}/my-repo</url>
</repository>
</repositories>
Installa la tua lib di terze parti lì usando install:install-fileil localRepositoryPathparametro:
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<myGroup> \
-DartifactId=<myArtifactId> -Dversion=<myVersion> \
-Dpackaging=<myPackaging> -DlocalRepositoryPath=<path>
Aggiornamento: sembra che install:install-fileignori l' localRepositoryPathutilizzo della versione 2.2 del plugin. Tuttavia, funziona con la versione 2.3 e successive del plugin. Quindi usa il nome completo del plugin per specificare la versione:
mvn org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file \
-Dfile=<path-to-file> -DgroupId=<myGroup> \
-DartifactId=<myArtifactId> -Dversion=<myVersion> \
-Dpackaging=<myPackaging> -DlocalRepositoryPath=<path>
documentazione di maven-install-plugin
Infine, dichiaralo come qualsiasi altra dipendenza (ma senza systemambito):
<dependency>
<groupId>your.group.id</groupId>
<artifactId>3rdparty</artifactId>
<version>X.Y.Z</version>
</dependency>
Questa è una soluzione migliore dell'IMHO rispetto all'utilizzo di un systemambito poiché la tua dipendenza sarà trattata come un buon cittadino (ad esempio, sarà inclusa in un'assemblea e così via).
Ora, devo dire che il "modo giusto" per affrontare questa situazione in un ambiente aziendale (forse non è il caso qui) sarebbe quello di utilizzare un repository aziendale.
localRepositoryPath...