Tôi có một gói OSGi được xây dựng bằng Maven bởi một nhóm khác. Tệp POM tuyên bố bao bì của nó là "gói" và sử dụng plugin Apache Felix.Cách triển khai gói OSGi cho repo Maven với triển khai: deploy-file?
Tôi cần triển khai vật phẩm này vào kho lưu trữ Maven cục bộ (Nexus) để nó có thể được sử dụng bởi các dự án nội bộ của chúng tôi.
Tôi đã sử dụng mục tiêu deploy:deploy-file
để triển khai gói cho kho lưu trữ, giống như bạn làm với tệp JAR chuẩn và thao tác này không có lỗi. Tôi trích POM nhúng từ bó và thông qua đó trên dòng lệnh, vì vậy dòng lệnh là:
mvn deploy:deploy-file -Dfile=3rdpartybundle.jar -DpomFile=pom.xml -DrepositoryId=internal -Durl=http://internalserver/nexus
Vấn đề là khi tôi triển khai nó như thế này, bao bì được thiết lập để bó và kết quả là tên của tạo phẩm trong kho lưu trữ kết thúc bằng một phần mở rộng .bundle, thay vì phần mở rộng .jar.
Bây giờ, chúng tôi không thể tìm ra cách khai báo dưới dạng phụ thuộc. Nếu chúng tôi tuyên bố như sau:
<dependency>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<type>bundle</type>
</dependency>
Chúng tôi gặp lỗi khi nói rằng không thể giải quyết sự phụ thuộc. Điều thú vị là tọa độ GAV trong thông báo lỗi thực sự có "jar" làm giá trị cho loại phụ thuộc mặc dù chúng ta đặt nó là "bundle".
Nếu chúng ta thay đổi phụ thuộc vào:
<dependency>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<type>jar</type>
</dependency>
Chúng tôi nhận được cùng một lỗi phụ thuộc chưa được giải quyết chính xác. Vì vậy, làm thế nào bạn có nghĩa vụ phải triển khai một artifact đóng gói như là một gói để một kho lưu trữ Maven, do đó nó có thể được sử dụng như là một phụ thuộc thời gian biên dịch cho một dự án khác? Không.
Cảm ơn
Tôi nhận thấy việc sử dụng cụm từ "kho lưu trữ cục bộ" của tôi có thể gây nhầm lẫn. Tôi đang cố triển khai kho lưu trữ Nexus trên máy chủ từ xa. Máy chủ được chia sẻ bởi tất cả mọi người trong nhóm của chúng tôi. Khi tôi nói "địa phương", tôi đoán những gì tôi có nghĩa là "bên trong tường lửa của chúng tôi trên mạng LAN của chúng tôi". –