Классы, сгенерированные QueryDSL/APT и статическим импортом

Очевидно, я не могу использовать классы, созданные с помощью APT, в модульных тестах, использующих статический импорт. (Пример проекта Maven можно скачать здесь)

Если следующий образец класса

import com.mysema.query.jpa.impl.JPAQuery;

public class UserStore {

    public void something() {
        new JPAQuery(null).from(QUser.user).list(QUser.user.login);
    }

}

изменено на

import static something.QUser.user;
import com.mysema.query.jpa.impl.JPAQuery;

public class UserStore {

    public void something() {
        new JPAQuery(null).from(user).list(user.login);
    }

}

процесс сборки (чистая установка mvn) завершится неудачно:

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.466s
[INFO] Finished at: Wed May 30 16:05:40 CEST 2012
[INFO] Final Memory: 18M/150M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project apt-bug: Compilation failure: Compilation failure:
...

( полное сообщение об ошибке)

Означает ли это, что я не могу использовать эти сгенерированные классы со статическим импортом в модульных тестах или есть проблема в файлах pom.xml?

РЕДАКТИРОВАТЬ:

POM-файл: http://pastebin.com/gvycZmXD

2 ответа

Это может быть связано https://github.com/mysema/querydsl/issues/158

У меня еще не было времени расследовать это.

редактировать

По-видимому, это было исправлено в Java 7

Я предполагаю, что проблема находится в статическом импорте, потому что в сообщениях об ошибках говорится, что импортированный QUser.user не является ни классом, ни интерфейсом. Похоже, что пользователь - это просто атрибут класса QUser, который объясняет сообщение об ошибке.

/home/xxx/apt-bug/src/main/java/something/UserStore.java:3: cannot find symbol
symbol  : class QUser
location: package something
import static something.QUser.user;
                       ^
/home/xxx/apt-bug/src/main/java/something/UserStore.java:3: static import only from classes and interfaces
import static something.QUser.user;
^
Другие вопросы по тегам