У меня есть настройка, в которой я вызываю сгенерированный конструктор (@TupleConstructor) класса Groovy (Product) из класса java (ProductService). IDE показывает сгенерированные конструкторы и компиляцию, используемые для работы. Но теперь, по неизвестным причинам, компиляция терпит неудачу, потому что компилятор оленьей кожи больше найти параметризованные конструктор:Созданный конструктор Groovy, отсутствующий во время компиляции
ProductService.java:31: error: constructor Product in class Product cannot
be applied to given types;
required: no arguments
found: String,boolean,boolean,float
reason: actual and formal argument lists differ in length
И это мой текущий Gradle (2,4) установки:
apply plugin: 'groovy'
apply plugin: 'java'
project.sourceCompatibility = 1.8
project.targetCompatibility = 1.8
sourceSets.main.java.srcDirs = []
sourceSets.main.groovy.srcDir 'src/main/java'
...
dependencies {
compile 'org.codehaus.groovy:groovy-all:2.4.+'
testCompile 'org.spockframework:spock-core:1.0-groovy-2.4'
}
Groovy класс:
@TupleConstructor
class Product {
String name
boolean bool1
boolean bool2
float price
}
Конструктор вызова в классе Java (не удается скомпилировать):
...
products.add(new Product("Parliament", true, false, 10.50F));
...
Нам нужно будет увидеть ваш код или небольшой пример, где вы воспроизводите поведение. В файле Gradle недостаточно информации для диагностики вашей проблемы. – Keegan
Хорошо, я обновил вопрос соответствующим образом. – PhilBa
Здесь все еще есть X-фактор. Когда я делаю небольшой проект с тем, что вы предоставили, он компилируется для меня отлично. Вы компилируете из IDE или командной строки? Кроме того, я предполагаю, что вы пытались запустить «gradle clean»? – Keegan