Я хочу, щоб jar знаходився у вкладці 3rdparty у контролі джерела та посилався на нього відносним шляхом від файлу pom.xml.
Якщо ви дійсно хочете цього (зрозуміти, якщо ви не можете використовувати корпоративне сховище), то моя порада буде використовувати «сховище файлів» локальне для проекту і не використовувати в systemконтекстну залежність. systemScoped слід уникати таких залежностей не працюють добре в багатьох ситуаціях (наприклад , в зборі), вони викликають більше проблем , ніж користі.
Отже, замість цього оголосіть сховище, локальне для проекту:
<repositories>
<repository>
<id>my-local-repo</id>
<url>file://${project.basedir}/my-repo</url>
</repository>
</repositories>
Встановіть свою бібліотеку третьої сторони в ньому , використовуючи install:install-fileз localRepositoryPathпараметром:
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<myGroup> \
-DartifactId=<myArtifactId> -Dversion=<myVersion> \
-Dpackaging=<myPackaging> -DlocalRepositoryPath=<path>
Оновлення: виявляється, що install:install-fileігнорує, localRepositoryPathколи використовується версія 2.2 плагіна. Однак він працює з версією 2.3 і пізнішої версії плагіна. Тому використовуйте повністю кваліфіковане ім'я плагіна, щоб вказати версію:
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>
документація maven-install-plugin
Нарешті, заявіть про це як про будь-яку іншу залежність (але без systemсфери застосування):
<dependency>
<groupId>your.group.id</groupId>
<artifactId>3rdparty</artifactId>
<version>X.Y.Z</version>
</dependency>
Це IMHO краще рішення, ніж використання systemсфери, оскільки ваша залежність буде сприйматись як хороший громадянин (наприклад, вона буде включена в збори тощо).
Тепер я маю зазначити, що "правильним способом" вирішити цю ситуацію у корпоративному середовищі (можливо, це не так) було б використовувати корпоративний репозиторій.
localRepositoryPath...