2016-05-05 2 views
1

Я новичок в Gradle, и я не знаю, что делать.
Вот Quasar документы о том, как установить Quasar через Gradle: Quasar Docs
Существует также шаблон проекта на странице: Template Gradle Project
Наконец это мой build.gradle:Как настроить Quasar в Gradle

group 'TGAdminsBot' 

version '0.1' 

apply plugin: 'java' 
apply plugin: 'idea' 
apply plugin: 'application' 

sourceCompatibility = 1.8 

repositories { 
    mavenCentral() 
    maven { url "https://jitpack.io" } 
} 
mainClassName = "Launcher" 
idea { 
    module 
      { 
       downloadJavadoc = true 
       downloadSources = true 
      } 

} 
dependencies { 
compile 'co.paralleluniverse:quasar-core:0.7.4:jdk8' 
compile 'com.fasterxml.jackson.core:jackson-databind:2.7.4' 

compile 'com.fasterxml.jackson.core:jackson-core:2.7.4' 
//compile 'com.github.User:Repo:Tag' 
//compile 'com.mashape.unirest:unirest-java:1.4.9' 
compile 'co.paralleluniverse:comsat-httpclient:0.7.0' 
compile group: 'com.squareup.okhttp3', name: 'okhttp', version: '3.2.0' 
testCompile group: 'junit', name: 'junit', version: '4.11' 

} 
configurations { 
    quasar 
} 
task runQuasar { 
    jvmArgs "-javaagent:${configurations.quasar.iterator().next()}" 


} 
run.dependsOn runQuasar 

И я получаю эту ошибку:

FAILURE: Build failed with an exception. 

* Where: 
Build file 'C:\Users\Sobhan\Documents\IntelliJIDEAProjects\TGAdminsBot\build.gradle' line: 39 

* What went wrong: 
A problem occurred evaluating root project 'TGAdminsBot'. 
> java.util.NoSuchElementException (no error message) 

Итак, что мне делать? Мне снова жаль задавать этот вопрос, но я новичок в Gradle, и я так много разобрался, прежде чем публиковать этот вопрос. Благодаря

ответ

1

Были три проблемы.

  1. configurations были определены до dependencies.
  2. необходимы

    Две линии в dependencies:


    компиляции 'co.paralleluniverse: Квазар-ядро: 0.7.4: jdk8'
    квазар «co.paralleluniverse: Квазар-ядро: 0.7.4: jdk8'


  3. Отсутствие этого блока:


    tasks.withType (JavaExec) {
    jvmArgs "-javaagent:. $ {Configurations.quasar.iterator() следующий()}"
    }


Наконец это окончательное build.gradle:

group 'TGAdminsBot' 
version '0.1' 

apply plugin: 'java' 
apply plugin: 'idea' 

sourceCompatibility = 1.8 

repositories { 
    mavenCentral() 
    maven { url "https://jitpack.io" } 
} 
idea { 
    module 
      { 
       downloadJavadoc = true 
       downloadSources = true 
      } 

} 
configurations { 
    quasar 
} 

dependencies { 
    compile 'co.paralleluniverse:quasar-core:0.7.4:jdk8' 
    quasar 'co.paralleluniverse:quasar-core:0.7.4:jdk8' 
    compile 'com.fasterxml.jackson.core:jackson-databind:2.7.4' 
    compile 'com.fasterxml.jackson.core:jackson-core:2.7.4' 
    compile 'co.paralleluniverse:comsat-httpclient:0.7.0' 
    compile group: 'com.squareup.okhttp3', name: 'okhttp', version: '3.2.0' 
    testCompile group: 'junit', name: 'junit', version: '4.11' 

} 


tasks.withType(JavaExec) 
     { 
      jvmArgs "-javaagent:${configurations.quasar.iterator().next()}" 
     } 
task run(type: JavaExec) { 

    main = 'com.sunova.bot.Launcher' 
    classpath = sourceSets.main.runtimeClasspath 
} 
1

Я думаю, ваша проблема заключается в основном в определении runQuasar, которое не является задачей запуска и, таким образом, не имеет jvmArgs свойства, но, если вам это не нужно по другим причинам я не знают о, просто сделать as in the Gradle template project (agent configuration) довольно чем определение runQuasar и объявить, что run зависит от него:

applicationDefaultJvmArgs = [ 
    "-javaagent:${configurations.quasar.singleFile}" // =v, =d 
] 

Если вам нужен отдельный runQuasar Я думаю, что вам нужно объявить его как JavaExec задачи (взгляните here).

+1

Это было верно, но есть некоторые другие ошибки в своем коде, который я обсуждал в своем ответе на мой вопрос. –

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