Tôi muốn jar nằm trong lib của bên thứ 3 trong kiểm soát nguồn và liên kết với nó bằng đường dẫn tương đối từ tệp pom.xml.
Nếu bạn thực sự muốn điều này (hiểu, nếu bạn không thể sử dụng một kho lưu trữ của công ty), sau đó lời khuyên của tôi sẽ được sử dụng một "kho tập tin" địa phương để dự án và không sử dụng một system
sự phụ thuộc chỉnh phạm vi. Phạm system
vi nên tránh, các phụ thuộc như vậy không hoạt động tốt trong nhiều tình huống (ví dụ như trong lắp ráp), chúng gây ra nhiều rắc rối hơn lợi ích.
Vì vậy, thay vào đó, khai báo một kho lưu trữ cục bộ cho dự án:
<repositories>
<repository>
<id>my-local-repo</id>
<url>file://${project.basedir}/my-repo</url>
</repository>
</repositories>
Cài đặt lib của bên thứ ba trong đó sử dụng install:install-file
với các localRepositoryPath
thông số:
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<myGroup> \
-DartifactId=<myArtifactId> -Dversion=<myVersion> \
-Dpackaging=<myPackaging> -DlocalRepositoryPath=<path>
Cập nhật: Dường như install:install-file
bỏ qua localRepositoryPath
khi sử dụng phiên bản 2.2 của plugin. Tuy nhiên, nó hoạt động với phiên bản 2.3 trở lên của plugin. Vì vậy, sử dụng tên đầy đủ của plugin để chỉ định phiên bản:
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>
tài liệu maven-install-plugin
Cuối cùng, khai báo nó giống như bất kỳ phụ thuộc nào khác (nhưng không có system
phạm vi):
<dependency>
<groupId>your.group.id</groupId>
<artifactId>3rdparty</artifactId>
<version>X.Y.Z</version>
</dependency>
Đây là một giải pháp tốt hơn so với việc sử dụng một system
phạm vi vì sự phụ thuộc của bạn sẽ được đối xử như một công dân tốt (ví dụ: nó sẽ được bao gồm trong một hội đồng, v.v.).
Bây giờ, tôi phải đề cập rằng "cách đúng đắn" để giải quyết tình huống này trong môi trường doanh nghiệp (có thể không phải là trường hợp ở đây) sẽ là sử dụng kho lưu trữ của công ty.
localRepositoryPath
...