2011-08-18 4 views
0

다음과 같이 paven 파일에 maven-compiler-plugin이 있지만 컴파일러는 일반적인 매개 변수로 인해 화를냅니다.Maven 클린 컴파일이 작동하지 않습니다.

List<EulTransactionHistory> list = hibernateTemplate.findByCriteria(criteria, -1, 1); 
EulTransactionHistory existingRecord = DBUtils.oneAndOnlyOne(list); 
을 다음과 같이 분노 얻을 수있는 컴파일러

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.3.2</version> 
    <configuration> 
     <source>1.6</source> 
     <target>1.6</target> 
     <compilerVersion>1.6</compilerVersion> 
    </configuration> 
</plugin> 

및 클래스, 내 받는다는 버전은 "아파치 메이븐 3.0.3 (09 + 0200 : 31 2011-02-28 19 r1075438)"입니다

public static <T> T oneAndOnlyOne(List<T> list) {...} 

결국 예외

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project etlscheduler: Compilation failure: Compilation failure SchedulerDaoImpl.java:[329,18] incompatible types 
found : java.lang.Object 
required: com.aric.etlscheduler.domain.EulTransactionHistory 
이며 다음과

는 DBUtils.oneAndOnlyOne 대한 사양은

또한이 프로젝트를 Eclipse로 컴파일 할 때 성공적으로 컴파일됩니다.

+1

DBUtils의 버전이 여러 개입니까, 아니면 클래스 패스에 스프링이 있습니까? Eclipse와 Maven은 다른 순서로로드 될 수 있습니다. – sofarsogood

답변

0

com.aric.etlscheduler.domain.EulTransactionHistory 클래스가 들어있는 jar가 프로젝트의 클래스 경로에 없습니다. jar 파일을 프로젝트의 pom에 종속성으로 추가했는지 확인하십시오.

+0

거기에 종속되어 있지 않고, 내 소스에 있으며, 계급에서 당연히 – dursun

+0

일식과 함께 성공적으로 컴파일됩니다. – dursun

0

컴파일러 오류로 인해 발생한 문제 일 수 있습니다.

  • DBUtils.oneAndOnlyOne(list)EulTransactionHistory 대신에 Object입니다.
  • 메서드에 전달 된 목록이 이 아닌 Objects의 목록이기 때문입니다.
  • 이것은 hibernateTemplate.findByCriteria()Objects의 목록을 반환하고 EulTransactionHistory의 목록을 반환하지 않기 때문입니다.
+0

이클립스와 함께 성공적으로 컴파일되기 때문에 구문에 문제가 있다고 생각하지 않습니다. – dursun

0

라인 (329)은

EulTransactionHistory existingRecord = DBUtils.oneAndOnlyOne(list); 

인 경우 1) 메이븐 클래스 경로의 첫 번째 DBUtils 클래스는 java.lang.Object 상위를 반환하는 oneAndOnlyOne() 메소드를 가지고, 또는 2) 당신이 통과하지 않는 때문이다 그것을 전달한다고 생각하는 목록이지만, 매개 변수가 지정되지 않은 List 또는 List입니다.

0

DBUtils가 다른 프로젝트에 있는데 한 번에 Object를 반환 한 DBUtils.oneAndOnlyOne()이 있습니까? 그렇다면 해당 프로젝트에서 Maven 설치를 수행해야합니다.

Maven은 마지막으로 설치된 jar를 사용하는 반면, Eclipse는 일반적인 방법으로 설정했다고 가정하고 다른 프로젝트에 직접 스누핑합니다.