Мне удалось создать классы типа запроса (.java) с помощью Gradle, однако они по умолчанию перемещаются в build/classes/main вместе с скомпилированными классами. Как перенести их в src/main/java, чтобы я мог ссылаться на них во время компиляции?Как перемещать сгенерированные классы типа запроса перед компиляцией в Gradle?
Вот мой Gradle скрипт сборки:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.6.RELEASE")
}
}
// Apply the java plugin to add support for Java
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'spring-boot'
jar {
baseName = 'gs-serving-web-content'
version = '0.1.0'
}
// In this section you declare where to find the dependencies of your project
repositories {
// Use 'jcenter' for resolving your dependencies.
// You can declare any Maven/Ivy/file repository here.
jcenter()
}
// In this section you declare the dependencies for your production and test code
dependencies {
// The production code uses the SLF4J logging API at compile time
compile 'org.slf4j:slf4j-api:1.7.21'
compile 'org.springframework.boot:spring-boot-starter-web:1.3.6.RELEASE'
compile 'org.springframework.boot:spring-boot-starter-thymeleaf:1.3.6.RELEASE'
compile 'org.springframework.boot:spring-boot-starter-data-jpa:1.3.6.RELEASE'
compile 'mysql:mysql-connector-java:6.0.3'
compile 'com.querydsl:querydsl-jpa:4.1.3'
compile 'com.querydsl:querydsl-apt:4.1.3:jpa'
// Declare the dependency for your favourite test framework you want to use in your tests.
// TestNG is also supported by the Gradle Test task. Just change the
// testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
// 'test.useTestNG()' to your build script.
testCompile 'junit:junit:4.12'
}
task wrapper(type: Wrapper) {
gradleVersion = '2.3'
}
Редактировать
В соответствии мой комментарий - я пытаюсь переместить сгенерированные классы в каталоге Src/сгенерированного/Java, а затем добавить, что местоположение в исходные каталоги, чтобы их можно было скомпилировать. Я попытался следующие, но это не создает каталог, ни любые файлы:
sourceSets {
main {
java {
srcDirs = [ 'src/main/java' ]
}
}
generated {
java {
srcDirs = [ 'src/generated/java' ]
}
}
}
Вы действительно не хотите, чтобы сделать это. Ручные письменные источники и сгенерированные источники не должны находиться в одном каталоге. Вместо этого добавьте место, где сгенерированные файлы .java находятся в исходных местах. – Henry
Хорошо, но теперь сгенерированные .java-файлы находятся вместе с скомпилированными файлами .class в том же каталоге - не должны ли они находиться в отдельном каталоге, например. "src/generated/java"? Если да, как я могу переместить сгенерированные классы в другой каталог, а затем добавить это в исходное местоположение в Gradle, чтобы все они скомпилировались? Я обновил вопрос с помощью фрагмента кода. – fuudge