2009-06-16 33 views
29

Tôi có một chương trình Java với Maven quản lý các phụ thuộc của nó. Một trong những phụ thuộc đó là trình bao bọc JNI cho một chương trình khác. Maven sẽ quan tâm đến tham chiếu đến tệp JAR có liên quan, nhưng tôi vẫn còn lộn xộn với bản thân tệp DLL.Quản lý các phụ thuộc DLL với Maven

Có cách nào tốt để có Maven xử lý DLL không? Lý tưởng nhất là tôi muốn có DLL được nạp vào kho lưu trữ cục bộ của chúng ta như tệp JAR.

Trả lời

32

Bạn có thử một cái gì đó như thế này:

<dependency> 
    <groupId>com.foo</groupId> 
    <artifactId>footron</artifactId> 
    <version>4.2</version> 
    <scope>runtime</scope> 
    <type>dll</type> 
</dependency> 

Bạn có thể thêm chúng vào kho maven với một cái gì đó như thế này:

mvn install:install-file -Dfile=footron.dll -DgroupId=com.foo -DartifactId=footron -Dversion=4.2 -Dpackaging=dll -DgeneratePom=true 

đã không làm điều này cho DLL nhưng một cái gì đó như thế này nên làm việc .

+0

Trên thực tế, sau khi dành một chút thời gian để suy nghĩ về nó, tôi quyết định đầu tư vào nỗ lực để loại bỏ sự cần thiết cho DLL thông qua JNI. Có lẽ giá trị nỗ lực trong thời gian dài. Tôi sẽ xem xét đề xuất của bạn mặc dù tò mò. – Kris

+3

@Kris, đó có thể là một ý tưởng hay. Tôi đã nghĩ đến việc gợi ý điều đó nhưng tôi không biến nó thành thói quen nói với mọi người để sửa mã tôi chưa từng thấy. AKA, xem xét mã Psychic – sal

+1

@sal, do đó, không có maven quản lý các tập tin .dll tự động gọi System.loadLibrary ()? Hay bạn vẫn phải gọi cho System.loadLibrary ()? Tôi chỉ tự hỏi làm thế nào tôi chắc chắn rằng dll được nạp cho các đối tượng khác để sử dụng. –

Các vấn đề liên quan