2013-07-22 2 views
2

사용자가 Maven 플러그인을 유지 관리하지 않는다고보고 한 사용자는 maven 2에서 더 이상 작동하지 않습니다 (Maven 3에서는 정상적으로 실행 됨). 그것은 오류Maven 2에서 'java.util.List'를 인스턴스화 할 수 없음 오류가 발생했습니다.

Cause: Class 'java.util.List' cannot be instantiated

빠른 구글이 전에 다른 플러그인에 영향을 미쳤다 3.0 받는다는 모델의 버그 제안으로 치어를 구문 분석하는 데 실패합니다.

http://code.google.com/p/maven-samaxes-plugin/issues/detail?id=18

는 최근 목록 매개 변수에 대한 식을 지정하여 명령 줄을 통해 값을 설정하기위한 지원을 추가하고, 버그를 유발 한 것으로 보인다.

/** 
* @parameter expression="${targetClasses}" 
*/ 
    protected List<String> targetClasses; 

나는 구체적인 목록 유형으로 필드를 선언함으로써이 문제를 해결 할 수 있지만, 모든 사람들이 요정이 작업을 수행 할 때마다 죽을 것을 알고있다.

maven 2에 대한 지원 철회 또는 구체적인 유형 사용을 제외하고이 문제에 대한 더 좋은 해결책이 있습니까?

+1

[주석] (http://maven.apache.org/plugin-tools/maven-plugin-tools-annotations/index.html)은 어떻게됩니까? – khmarbaise

+0

@khmarbaise 제안을 주셔서 감사합니다. 그러나 주석을 사용하도록 업데이트하면 플러그인이 여전히 maven 2와 호환됩니다 (이 기능은 Maven 3 기능이 아닙니까?). 그렇다면 이것이 메이븐 2 사용자의 원래 문제를 해결할 것이라고 믿을만한 이유가 있습니까? – henry

+0

예. 실행중인 JVM은 적어도 JVM 1.5 이상이어야합니다. 100 % Maven 2로 테스트 할 필요가 있는지 확인하십시오. Maven 2.0.X에 대해 이야기하지 않았 으면 좋겠습니까? – khmarbaise

답변

0

이 지금은 아주 오래되어 자신의 질문에 대답했습니다, 나는 ... 생각하지만 완성도, 여기 간다 :

내가 MVN 2.0.9을 사용하고 List<String> 전환 할 수 있도록했다 해요 :

/** 
* @parameter expression="${arguments}" 
*/ 
protected List<String> arguments;  //with or without generics, still complained! 

String[] 행 :

/** 
* @parameter expression="${arguments}" 
*/ 
protected String[] arguments; 

POM을 구성한다 후 다음과 같이

<configuration> 
    ... 
    <arguments> 
     <argument>arg1</argument> 
     <argument>arg2</argument> 
    </arguments> 
</configuration> 
+0

어디에서 바꿨습니까? –

+1

@ FernandoGabrieli 더 이상 사용할 코드가 없습니다. 그러나 필자는 필자의 메이븐 플러그인 구성을 나타내는 클래스에서이를 변경해야했습니다. 즉 위의'arguments '를 나타내는 클래스입니다. 'List '에서'String []'(으)로 되돌려 야했습니다. – wmorrison365

+0

감사합니다 :) 뭔가 일하는 것도 이전 버전을 사용하는 것이 었습니다. –