当前位置: 首页 > 知识库问答 >
问题:

Kotlin-Kapt注释处理器不支持maven

龚永新
2023-03-14

我想从kotlin实体类生成jpa querydsl文件。

在线上有一个很好的例子,说明如何使用gradle生成dsl文件https://github.com/JetBrains/kotlin-examples/blob/master/gradle/kotlin-querydsl/build.gradle.

然而,我试图在maven中实现它,但没有运气。我目前的pom在下面。有人知道问题可能是什么吗?提前谢谢。

<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>test</groupId>
<artifactId>test-jpa</artifactId>
<version>2.7.0-SNAPSHOT</version>

<properties>
    <kotlin.version>1.1.50</kotlin.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.3.5.Final</version>
    </dependency>
    <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-stdlib-jre8</artifactId>
        <version>${kotlin.version}</version>
    </dependency>

</dependencies>
<build>
    <plugins>
        <plugin>
            <artifactId>kotlin-maven-plugin</artifactId>
            <groupId>org.jetbrains.kotlin</groupId>
            <version>${kotlin.version}</version>

            <executions>
                <execution>
                    <id>kapt</id>
                    <goals>
                        <goal>kapt</goal>
                    </goals>
                    <configuration>
                        <sourceDirs>
                            <sourceDir>${project.basedir}/src/main/java</sourceDir>
                        </sourceDirs>
                        <annotationProcessorPaths>
                            <annotationProcessorPath>
                                <groupId>com.mysema.querydsl</groupId>
                                <artifactId>querydsl-apt</artifactId>
                                <version>3.6.4</version>
                            </annotationProcessorPath>
                        </annotationProcessorPaths>
                    </configuration>
                </execution>

                <execution>
                    <id>compile</id>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                    <configuration>
                        <sourceDirs>
                            <sourceDir>src/main/java</sourceDir>
                            <sourceDir>${project.build.sourceDirectory}</sourceDir>
                        </sourceDirs>
                    </configuration>
                </execution>
            </executions>
        </plugin>

    </plugins>

</build>

共有1个答案

卞轶
2023-03-14

潜在的问题是您错过了jpa分类器:

<annotationProcessorPath>
    <groupId>com.mysema.querydsl</groupId>
    <artifactId>querydsl-apt</artifactId>
    <version>3.6.3</version>
    <classifier>jpa</classifier>
</annotationProcessorPath>

我向kotlin-examples存储库中添加了一个Maven/Querydsl示例。注意,这个例子有一个稍微复杂一点的pom,因为它也支持Java/Kotlin组合项目。

 类似资料:
  • 我看到一个例子解释了Kotlin JVM的KATP,它正在工作。 我想知道它是否支持Kotlin JS?有什么例子吗?

  • 在添加com.google.dagger:dagger-android-support依赖项后,我得到了这个gradle错误。 这是我的构建的一部分

  • 出于某种原因,Kapt抱怨说我的一个模块没有启用增量编译。然而,我看不出有什么不应该的理由。 运行core时的警告消息:kaptKotlin 错误显示<code>io.github.mdsimmo.cmdmsg。TextPreprocessor模块有故障,但我不明白为什么它不是增量的? 我已经在每个模块的< code>gradle.properties中添加了< code > kapt . inc

  • 在我的应用模块的build.gradle中,我添加了 但我仍然收到编译器警告 一切正常,我只是讨厌到处挂着警告。 非常感谢任何帮助!

  • 静态编程语言是否支持像这样的java注释,因为我无法让它工作。我可以用注释颜色,但实际上没有得到该注释的lint检查。 例子 传递,不显示线头。应使用R颜色显示皮棉。colorPrimary,不与

  • 我的处理器中有一个简单的注释,如下所示: 这适用于java文件,但一旦我将文件转换为kotlin,注释的导入就不再有效。为什么? 我需要改变什么才能让他的注释也在Kotlin中工作?从文档中,我可以看到kotlin与java注释100%兼容,所以我有点困惑这里有什么问题...如果处理器不工作,需要调整以与kotlin一起工作,我会理解,但我不知道为什么导入本身不工作... 我说的图书馆在这里:ht