2015-01-26 136 views
2

我有一个用于mongodb的小示例项目,无法使注释处理器正常工作。我使用的例子来自:尝试设置Querydsl 3.6.0与MongoDB,但MorphiaAnnotationProcessor未找到

http://www.querydsl.com/static/querydsl/latest/reference/html/ch02s07.html

运行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> 

回答

1

正确的类名是com.mysema.query.apt.morphia.MorphiaAnnotationProcessor

+0

谢谢! FWIW我也需要org.mongodb.morphia才能使注释生效。 – SteveS 2015-01-27 17:25:39

+0

是的,在querydsl-mongodb中它只是一个可选的依赖项。 – 2015-01-28 06:27:53

7

使用Spring的数据,你应该使用org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor

春数据蒙戈提供了一个定制APT处理器生成 元模型而不是QueryDSL中提供的元模型,它将会l扫描Spring特定的@Document而不是Morphia特定的注释。

相关问题