2011-11-19 4 views
1

Eclipse (8 개월 작업)에 비교적 큰 웹 프로젝트를 만들었습니다. 지금까지 Eclipse 빌드 시스템을 사용 해왔다. 이제 여러 가지 이유로 Ant에가보고 싶습니다. (그 중에서도 js 압축과 같은 다른 특정 WAR 작업을 추가 할 수 있어야합니다.). Eclipse가 자동으로 build.xml 파일을 생성하고 모든 종속성이 설정되었음을 발견했습니다. 문제는 내가 그것을 실행하려고하면, 그것은 실패하고이 오류 준다이다 : 그것은 besically 제네릭 오류의 beacause를 사망Ant를 사용하여 Eclipse 프로젝트를 컴파일 할 때의 문제

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); 

.... 보통 이클립스에 잘 컴파일을 (나는 그것이 알고 다른 컴파일러 ...). javac는 어떻게하면이 작업을 할 수 있습니까 ?? ...가 각각 두 인터페이스, 서비스 제에 대한 두번째 구현 두 클래스에

@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; 
    } 

된다

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

및 dao.getItem :

방법은 dao 그리고 그들은 봄에 사용됩니다.

왜 이런 일이 발생합니까? Eclipse 컴파일러는 javac와 너무 다른가요?

답변

1

실제로 어떤 버전의 Ant가 사용되고 어떤 버전의 컴파일러가 사용되고 있습니까? 온전한 검사를 위해 개미를 실행하려고하는 명령 줄에서 다음을 시도하십시오.

개미 -v.

javac -v.

모든 상황에서 작동해야하지만 비슷한 상황이 발생했습니다. 여기서 Weblogic은 내가 사용하려고했던 것보다 개미와 javac의 구버전을 가지고 있었고,이 구버전은 내가 원했던 것 대신에 사용되고있었습니다. 필자는 PATH에 이러한 변수를 명시 적으로 설정하고 ant 태스크를 실행하기 전에 스크립트를 실행하는 스크립트를 작성했습니다.

+0

개미는 1.8.1이고 javac는 1.6.0_21 – gotch4

+0

@ gotch4입니다. 예상했던 값입니까? – bakoyaro

+0

예 그들은 ... 그래서? – gotch4

관련 문제