Tôi có các tình huống sau:dự án với sự phụ thuộc nguồn gốc và sao chép tập tin Maven
mylib là một thư viện (mà tôi có nguồn khác nhau, vì vậy tôi muốn đặt chúng vào một mylib dự án Maven: mylib ví dụ). Thư viện này có một phụ thuộc jar mà tôi chỉ có jar, và nó không được tìm thấy trong kho lưu trữ Maven (và tôi KHÔNG muốn cài đặt nó ở đó). Để làm cho nó biên dịch, một cái gì đó như thế này sẽ làm việc: thêm tệp jar vào dự án mylib trong một thư mục "lib", ví dụ: "lib/thirdpartylib.jar" và trong tệp pom.xml của mylib, thêm một phụ thuộc với nhóm/tạo phẩm/phiên bản tự chọn và mục nhập "<scope>system</scope><systemPath>${project.basedir}/lib/thirdpartylib.jar</systemPath>
". Dự án mylib sẽ biên dịch tốt.
Lưu ý rằng mylib cũng có phụ thuộc thời gian chạy vào tệp dll, nói thirdparty.dll. Nhưng để biên soạn thì điều này không quan trọng.
Tuy nhiên, bây giờ những gì tôi đang tự hỏi làm thế nào để đạt được những điều sau đây:
Bất kỳ dự án nào khác, ví dụ: dự án "X", rằng sử dụng mylib, sẽ cần
- mylib.jar
- thirdpartylib.jar
- thirdpartylib.dll
,
và nó sẽ phải thiết lập các java.library.path vào thư mục (ví dụ: "") sao cho jar thứ ba và dll được tìm thấy bởi máy ảo thực thi.
Mối quan tâm của tôi là: Tôi muốn các thứ ba/dll thứ ba là trách nhiệm của dự án mylib. I E. Tôi muốn xác định kiến thức, rằng bạn cần phải sao chép jar của bên thứ ba và dll vào thư mục đích và java.library.path đề cập đến chúng, là một phần của dự án mylib (mylib pom biết làm thế nào để được sử dụng trong các dự án khác). Tuy nhiên, tôi muốn kiến thức này (tức là hướng dẫn sao chép, bất kể chúng được thực hiện chính xác như thế nào trong Maven) được chuyển giao cho bất kỳ dự án nào khác bằng cách sử dụng mylib, chẳng hạn như X chẳng hạn. Có phải bằng cách nào đó có thể?
[Giải pháp hack của tôi bây giờ là tôi có một bản sao thứ ba trong X, nhưng thậm chí sau đó tôi không biết cách sao chép/xử lý tệp dll, vì vậy tôi phải viết một readme nói rằng tệp dll phải được sao chép vào thư mục bin của máy ảo thực hiện).
Bất kỳ đề xuất nào được đánh giá cao!
Tôi gắn bó với bạn là giải pháp, cảm ơn người đàn ông. – mtrovo