2016-12-21 12 views
0

Мой Dependencie строится как nar (который содержит Java файлы и JNI обертку)Maven NAR Dependency - Не удалось разрешить зависимости

<dependency> 
     <groupId>jni</groupId> 
     <artifactId>jni</artifactId> 
     <version>1.0.0-SNAPSHOT</version> 
</dependency> 

Теперь если я

mvn clean package 

это говорит Could not resolve dependencies for project java:javatest:jar:1.0.0-SNAPSHOT: Could not find artifact jni:jni:jar:1.0.0-SNAPSHOT

проблема заключается в том, что в проекте с nar-Packaging вывод называется .nar вместо .jar, так что если Я копирую jni.nar в своем локальном репозитории (~/.m2/repository/jni/jni) и назову его jni.jar, он отлично работает.

Любая идея, как я мог решить эту проблему без ручного переименования файла?

ответ

1

Вы, вероятно, нужно сказать Maven ваш тип зависимости отличается:

<dependency> 
     <groupId>jni</groupId> 
     <artifactId>jni</artifactId> 
     <version>1.0.0-SNAPSHOT</version> 
     <type>nar</type> 
</dependency> 

Примечание: Я предполагаю, что тип является «Нар» здесь. Проверьте POM зависимости, чтобы узнать, что такое фактический тип.

+0

Тип не обязательно связан с расширением или упаковкой. Это действительно 'nar' здесь [но потому, что плагин решил для этого] (https://github.com/maven-nar/nar-maven-plugin/blob/nar-maven-plugin-3.5.1/src/ Основные/ресурсы/META-INF/сплетение/components.xml # L112-L115). – Tunaki

+0

тоже не работает. В моем понимании я бы использовал это: если мой проект также является проектом NAR, которому нужна общая библиотека в качестве зависимости? – user2071938

+0

@Tunaki Действительно! Вот почему я написал, что только догадываюсь, что это «нар». –