Как настроить APT для Immutables таким образом, чтобы Intellij Idea распознавала сгенерированный код?
Я смотрю на переход с maven на gradle, в этом случае сам gradle, кажется, работает нормально, но Idea не распознает исходный код, который генерирует Immutables.
Я прочитал этот пост в блоге на APT, вот как я получил это.
/*
* This build file was generated by the Gradle 'init' task.
*
* This generated file contains a commented-out sample Java project to get you started.
* For more details take a look at the Java Quickstart chapter in the Gradle
* user guide available at https://docs.gradle.org/4.3/userguide/tutorial_java_projects.html
*/
// Apply the java plugin to add support for Java
apply plugin: 'java-library'
apply plugin: 'idea'
buildscript {
repositories {
maven {
url 'https://d3vfm0n2cffdwd.cloudfront.net'
}
jcenter()
}
dependencies {
classpath 'io.spring.gradle:dependency-management-plugin:1.0.0.RELEASE'
}
}
apply plugin: 'io.spring.dependency-management'
dependencyManagement {
imports {
mavenBom 'com.xenoterracide:platform:0.1.39-SNAPSHOT'
}
}
repositories {
maven {
url 'https://d3vfm0n2cffdwd.cloudfront.net'
}
jcenter()
}
configurations {
apt
aptCompile
}
// In this section you declare the dependencies for your production and test code
dependencies {
implementation 'com.google.guava:guava'
aptCompile 'org.immutables:value'
compileOnly 'org.immutables:value'
apt 'org.immutables:builder'
// The production code uses the SLF4J logging API at compile time
implementation 'org.slf4j:slf4j-api'
// 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.
testImplementation 'junit:junit'
testImplementation 'org.assertj:assertj-core'
testImplementation 'org.mockito:mockito-core'
testImplementation 'org.hamcrest:hamcrest-library'
}
compileJava {
options.annotationProcessorPath = configurations.aptCompile
}
для получения дополнительной информации см. bitbucket
одна из вещей, которая меня привлекает, это то, что в зависимости от того, что я пробовал, сгенерированный Java либо заканчивается out
каталог или build
на пути к классам, конечно, пока ни один из них не решает проблему.
Как я могу это исправить, чтобы Idea могла видеть источник сгенерированных типов (чтобы он не был выделен красным цветом)?
1 ответ
Решение
Ссылки @CrazyCoder помогли мне приблизиться к решению, но, похоже, это решает проблему.
idea {
module {
sourceDirs += file("out/production/classes/generated")
}
}