用Ant编译Eclipse项目的问题



我在Eclipse上创建了一个相当大的web项目(耗时8个月)。到目前为止,我一直在使用Eclipse构建系统。现在我想去蚂蚁有很多原因(其中,能够添加某些战前任务,如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……

@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有很大不同吗?

实际使用的是哪个版本的Ant,使用的是哪个版本的编译器?要进行完整性检查,请在试图运行ant:

的命令行中尝试执行以下操作:

ant - v。

javac - v。

我曾经遇到过类似的情况,一切都应该工作,但没有。在这里,Weblogic的ant和javac版本都比我尝试使用的版本要旧,而这些旧版本正在被使用,而不是我想要的版本。最后,我编写了一个脚本,在我的PATH中显式地设置这些变量,并在运行ant任务之前运行该脚本。

相关内容

  • 没有找到相关文章

最新更新