2016-01-21 2 views
0

Итак, я новичок в Gradle и Java в целом и имею немало проблем. Из-за некоторых других странных трудностей с IntelliJ я хочу изменить путь, по которому Antlr выводит сгенерированный код. Это было легко изменить:Как добавить пользовательский путь выхода Antlr к основному набору источников в Gradle?

generateGrammarSource { 
    outputDirectory = file("src/temp/generated-code") 
} 

Однако, теперь я с большим трудом на самом деле Компилируя в моих «главных» и «тест» исходных множеств. Я просто хочу расширить основные и тестовые исходные наборы, чтобы включить эти файлы. Я пытался сделать это с чем-то вроде:

sourceSets { 
    generated{ 
     java { 
      srcDir 'src/temp/generated-code' 
     } 
    } 
    main { 
     compileClasspath += generated.output 
     runtimeClasspath += generated.output 
    } 
    test { 
     compileClasspath += generated.output 
     runtimeClasspath += generated.output 
    } 
} 

Однако, делая это не позволяет сгенерированный код компиляции, чтобы иметь доступ к зависимостям. Таким образом, компиляция терпит неудачу, потому что она не может использовать весь материал в пакетах antlr.

Есть ли какой-либо простой способ добавить эти зависимости, ИЛИ, просто заставить основной и тестовый набор источников каким-то образом включать сгенерированный код?

ответ

0

я в конечном итоге выяснить это обманчиво простой способ:

sourceSets { 
    main { 
     java { 
      srcDirs = ["src/main/java", "src/temp/generated-code"] 
     } 
    } 
} 

Хотя я должен добавить это для очистки:

clean.doFirst { 
    delete "src/temp" 
} 

Я чувствую, что есть, вероятно, лучше способ сделать это, не пропуская эти имена путей повсюду, но, похоже, работает нормально

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

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