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 system
dipendenza con ambito. L' system
ambito 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-file
il localRepositoryPath
parametro:
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<myGroup> \
-DartifactId=<myArtifactId> -Dversion=<myVersion> \
-Dpackaging=<myPackaging> -DlocalRepositoryPath=<path>
Aggiornamento: sembra che install:install-file
ignori l' localRepositoryPath
utilizzo 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 system
ambito):
<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 system
ambito 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
...