Java 正在尝试使用MongoDB设置Querydsl 3.6.0,但找不到MorphiaAnnotationProcessor

Java 正在尝试使用MongoDB设置Querydsl 3.6.0,但找不到MorphiaAnnotationProcessor,java,mongodb,maven,querydsl,Java,Mongodb,Maven,Querydsl,我有一个mongodb的小示例项目,无法让注释处理器工作。我使用的例子如下: 运行mvn clean install会产生: Annotation processor 'com.querydsl.mongodb.morphia.MorphiaAnnotationProcessor' not found 我到处找那个处理器。就是找不到。以下是pom.xml文件: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="ht

我有一个mongodb的小示例项目,无法让注释处理器工作。我使用的例子如下:

运行
mvn clean install
会产生:

Annotation processor 'com.querydsl.mongodb.morphia.MorphiaAnnotationProcessor' not found
我到处找那个处理器。就是找不到。以下是pom.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     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>com.stevesando</groupId>
<artifactId>FindAll</artifactId>
<version>1.0-SNAPSHOT</version>

<dependencies>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
        <version>1.2.1.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <version>1.2.1.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>com.mysema.querydsl</groupId>
        <artifactId>querydsl-mongodb</artifactId>
        <version>3.6.0</version>
    </dependency>

    <dependency>
        <groupId>com.mysema.querydsl</groupId>
        <artifactId>querydsl-apt</artifactId>
        <version>3.6.0</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.6.1</version>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>

        <plugin>
            <groupId>com.mysema.maven</groupId>
            <artifactId>apt-maven-plugin</artifactId>
            <version>1.1.3</version>
            <executions>
                <execution>
                    <goals>
                        <goal>process</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>target/generated-sources/java</outputDirectory>
                        <processor>com.querydsl.mongodb.morphia.MorphiaAnnotationProcessor</processor>
                    </configuration>
                </execution>
            </executions>
        </plugin>

    </plugins>
</build>

4.0.0
史蒂文森多
芬德尔
1.0-快照
org.springframework.boot
spring启动程序数据mongodb
1.2.1.发布
org.springframework.boot
弹簧起动试验
1.2.1.发布
com.mysema.querydsl
querydsl mongodb
3.6.0
com.mysema.querydsl
querydsl公寓
3.6.0
假如
org.slf4j
slf4j-log4j12
1.6.1
org.apache.maven.plugins
maven编译器插件
3.1
1.7
1.7
UTF-8
com.mysema.maven
aptmaven插件
1.1.3
过程
目标/生成的源代码/java
com.querydsl.mongodb.morphia.MorphiaAnnotationProcessor

正确的类名是
com.mysema.query.apt.morphia.MorphiaAnnotationProcessor
使用Spring数据,您应该使用
org.springframework.Data.mongodb.repository.support.MongoAnnotationProcessor

SpringDataMongo提供了一个定制的APT处理器来生成 元模型而不是QueryDSL中提供的元模型,它将扫描 特定于Spring的@Document,而不是特定于Morphia的注释


谢谢FWIW我也需要org.mongodb.morphia,才能让注释正常工作。是的,在querydsl mongodb中,它只是一个可选的依赖项。