2017-01-28 31 views
1

Я попытался запустить сборку на java-программе, чтобы преобразовать ее в файл cap для java-карт. Тем не менее я продолжаю получать следующую ошибку:Ошибка jna maven при создании javacard applet

> Could not resolve all dependencies for configuration ':classpath'. 
> Could not find any version that matches net.java.dev.jna:jna:[3.2.5,4.0.0]. 
Searched in the following locations: 
http://repo1.maven.org/maven2/net/java/dev/jna/jna/maven-metadata.xml 
http://releases.marmeladburk.fidesmo.com/net/java/dev/jna/jna/maven-metadata.xml 
http://releases.marmeladburk.fidesmo.com/net/java/dev/jna/jna/ 

Надеюсь, кто-то знает, как помочь. Благодаря

== EDIT ==

Теперь Gradle сборки выглядит следующим образом:

 apply plugin: 'groovy' 
apply plugin: 'maven' 
apply plugin: 'release' 
apply plugin: 'fidesmo' 

buildscript { 
    repositories { 
     maven { url 'http://releases.marmeladburk.fidesmo.com/' } 
    } 

    dependencies { 
     classpath 'com.fidesmo:gradle-fidesmo:0.1.10' 
    } 
} 

javacard { 
    cap { 
     aid = "${fidesmoPrefix}:0x01" 
     packageName = 'org.example.javacard.package' 
     applet { 
      aid = "${fidesmoPrefix}:0x01:0x01" 
      className = 'Applet' 
     } 
     version = '1.0' 
    } 
} 
buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.github.townsfolk:gradle-release:1.2' 
    } 
} 

sourceCompatibility = '1.6' 

configurations { 
    mavenDeploy 
} 

repositories { 
    mavenCentral() 
    maven { url 'http://releases.marmeladburk.fidesmo.com/' } 
} 

dependencies { 
    compile gradleApi() 
    compile localGroovy() 
    compile 'net.java.dev.jna:jna:4.0.0' // alternative 
    compile 'com.fidesmo:gradle-javacard:0.2.6' 
    compile 'com.fidesmo:sec-client-core:0.2.2' 
    compile 'com.fidesmo:sec-client-delivery:0.2.2' 
    compile 'com.fidesmo:sec-client-local:0.2.2' 
    compile 'io.github.jnasmartcardio:jnasmartcardio:0.2.6' 
    compile ('io.github.jnasmartcardio:jnasmartcardio:0.2.4') { 
    exclude group: "net.java.dev.jna", name: "jna" 
    } 
    compile 'jline:jline:2.13' 
    runtime 'ch.qos.logback:logback-classic:1.1.3' 
    testCompile 'junit:junit:4.11' 
    testCompile 'org.hamcrest:hamcrest-all:1.3' 
    mavenDeploy 'org.kuali.maven.wagons:maven-s3-wagon:1.2.1' 
} 

group 'com.fidesmo' 

uploadArchives { 
    repositories { 
     mavenDeployer { 
      uniqueVersion = false 
      configuration = configurations.mavenDeploy 
      repository(url: "s3://${version.endsWith('-SNAPSHOT') ? 'snapshots' : 'releases'}.marmeladburk.fidesmo.com") 
      pom.project { 
       name 'Gradle fidesmo plugin' 
       description 'Gradle plugin for easy development and deplyoment of java cardlets with the fidesmo service' 
       url 'https://github.com/fidesmo/gradle-plugin' 
       inceptionYear '2014' 

       artifactId 'gradle-fidesmo' 

       scm { 
        url 'https://github.com/fidesmo/gradle-fidesmo' 
        connection 'scm:https://github.com/fidesmo/gradle-fidesmo' 
        developerConnection 'scm:[email protected]:fidesmo/gradle-fidesmo.git' 
       } 

       licenses { 
        license { 
         name 'The Apache Software License, Version 2.0' 
         url 'http://www.apache.org/licenses/LICENSE-2.0.txt' 
         distribution 'repo' 
        } 
       } 

       developers { 
        developer { 
         id 'yves' 
         name 'Yves Müller' 
         email '[email protected]' 
         organization 'Fidesmo AB' 
         organizationUrl 'http://fidesmo.com' 
        } 
       } 
      } 
     } 
    } 
} 

task wrapper(type: Wrapper) { 
    gradleVersion = '2.0' 
} 
+0

Если бы вы могли прикрепить некоторые из своих pom.xml, которые определенно помогут. –

+0

Я посмотрел файлы проекта и нет pom.xml, это просто обертка градиента – AJB

+0

Есть ли что-то достойное, чтобы посмотреть внутри? –

ответ

0

Не знаю почему, но инструмент сборки пытается найти версию ЮНА библиотеки на основе этого XML файл:

http://repo1.maven.org/maven2/net/java/dev/jna/jna/maven-metadata.xml 

Внутри версии он указывает на это последняя, ​​которая является 4,3

<metadata> 
<groupId>net.java.dev.jna</groupId> 
<artifactId>jna</artifactId> 
<versioning> 
<latest>4.3.0</latest> 
<release>4.3.0</release> 
<versions> 
<version>4.3.0</version> 
</versions> 
</metadata> 

В вашем pom.xml этот диапазон delcared как имеющий максимальную версию 4.0.0:

<dependency> 
      <groupId>net.java.dev.jna</groupId> 
      <artifactId>jna</artifactId> 
      <version>[3.2.5,4.0.0]</version> 
     </dependency> 

Решение

Изменение к:

<version>[3.2.5,4.3.0]</version> 

или (любой конкретный вариант)

<version>4.0.0</version> 

В Gradle

dependencies { 
    compile 'net.java.dev.jna:jna:[3.2.5,4.3.0]' 
    compile 'net.java.dev.jna:jna:4.0.0' // alternative 
    ... 
} 

Update 2

Вам может понадобиться, чтобы исключить версию из родителей:

compile ('io.github.jnasmartcardio:jnasmartcardio:0.2.4') { 
    exclude group: "net.java.dev.jna", name: "jna" 
    } 
+0

выглядит потрясающе, но где я могу найти xml – AJB

+0

в файле, который вы указали: github.com/jnasmartcardio/jnasmartcardio/blob/master/pom.xml –

+0

, если вы используете это как своего родителя. . Затем вы снова определяете ту же зависимость (с другой версией) в вашем pom.xml или build.gradle –

0

Shameless плагин (это мой собственный небольшой набор инструментов) : для простого построения апплета JavaCard вы можете попробовать ant-javacard (никаких зависимостей ни на чем)

 Смежные вопросы

  • Нет связанных вопросов^_^