Проблемы компиляции проекта Eclipse с Ant - PullRequest
1 голос
/ 19 ноября 2011

Я создал достаточно большой веб-проект на Eclipse (8 месяцев работы). Я использую систему сборки Eclipse до сих пор. Теперь я хотел бы перейти к Ant по ряду причин (среди них, возможность добавить определенные задачи перед WAR, такие как сжатие js и другие ...). Я обнаружил, что Eclipse автоматически создает файл build.xml со всеми установленными зависимостями. Проблема в том, что, если я пытаюсь запустить его, он терпит неудачу и выдает эту ошибку:

type parameters of <TypeName>TypeName cannot be determined; no unique maximal instance exists for type variable TypeName with upper bounds TypeName,java.lang.Object
    [javac]         return dao.getItemByProperty(propertyName, val, objectClass);

он умирает из-за ошибки с дженериками ... обычно он хорошо компилируется в Eclipse (я знаю, что это другой компилятор ...). Как я могу иметь JAVAC работать с этим ??

Метод:

@Override
    @Transactional
    public <TypeName> TypeName getItemByProperty(String propertyName,
            Object val, Class objectClass) {
        return dao.getItemByProperty(propertyName, val, objectClass);
    }

и dao.getItem ... is

@Override
    public <TypeName> TypeName getItemByProperty(String propertyName,
            Object val, Class objectClass) {

        Session sess = sessionFactory.getCurrentSession();
        Criteria criteria = sess.createCriteria(objectClass);
        criteria.add(Expression.eq(propertyName, val));
        @SuppressWarnings("unchecked")
        List<TypeName> results = criteria.list();

        if (results != null && results.size() != 0) {
            TypeName res = results.get(0);
            return res;
        }

        return null;
    }

они в двух классах, которые соответственно реализуют два интерфейса, первый для службы, второй для dao, и они используются в Spring.

Почему это происходит? Отличается ли Eclipse-компилятор от javac?

1 Ответ

1 голос
/ 19 ноября 2011

Какая версия Ant на самом деле используется и какая версия компилятора используется?Для проверки работоспособности попробуйте это в командной строке, где вы пытаетесь запустить ant:

ant -v.

javac -v.

Однажды я столкнулся с подобной ситуацией, когда все должно работать, но не работает.Здесь у Weblogic была более старая версия ant и javac, чем та, которую я пытался использовать, и эти старые версии использовались вместо тех, которые я хотел.В итоге я написал сценарий, который явно устанавливает эти переменные в моем PATH, и запустил сценарий перед запуском задачи ant.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...