2016-08-30 6 views
0

빌드 프로세스의 일부로 특수 zip 파일을 만드는 플러그인이 있습니다.
이렇게하려면 사용자 정의 패키징 유형 'wcc'와 함께 이동하는 사용자 정의 라이프 사이클을 정의합니다.
mvn package을 실행하면 응용 프로그램이 내 zip 파일을 올바르게 빌드하고 모든 것이 작동합니다.
(주 :이 작업을 수행 할 수 단위 테스트를 생략합니다.)커스텀 라이프 사이클이 깨졌습니다. Surefire : Maven의 테스트

그러나, 나는 mvn test를 실행할 때 오류가 발생합니다. 그때 나는 내 테스트를 실행하고 잘 통과 <packaging>wcc에서 jar에 변경하는 경우

[ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test 
(default-test) on project LowesMMU: 
    A type incompatibility occured while executing 
    org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test: 
     java.io.File cannot be cast to java.lang.String 
[ERROR] ----------------------------------------------------- 
[ERROR] realm = plugin>org.apache.maven.plugins:maven-surefire-plugin:2.19.1 
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy 
[ERROR] urls[0] = file:/.m2/repository/org/apache/maven/plugins/maven-surefire-plugin/2.19.1/maven-surefire-plugin-2.19.1.jar 
[ERROR] urls[1] = file:/.m2/repository/org/apache/maven/surefire/maven-surefire-common/2.19.1/maven-surefire-common-2.19.1.jar 
[ERROR] urls[2] = file:/.m2/repository/org/apache/maven/surefire/surefire-booter/2.19.1/surefire-booter-2.19.1.jar 
[ERROR] urls[3] = file:/.m2/repository/org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.jar 
[ERROR] urls[4] = file:/.m2/repository/junit/junit/4.12/junit-4.12.jar 
[ERROR] urls[5] = file:/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar 
[ERROR] urls[6] = file:/.m2/repository/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar 
[ERROR] urls[7] = file:/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.jar 
[ERROR] urls[8] = file:/.m2/repository/org/slf4j/slf4j-jdk14/1.5.6/slf4j-jdk14-1.5.6.jar 
[ERROR] urls[9] = file:/.m2/repository/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6.jar 
[ERROR] urls[10] = file:/.m2/repository/org/slf4j/jcl-over-slf4j/1.5.6/jcl-over-slf4j-1.5.6.jar 
[ERROR] urls[11] = file:/.m2/repository/org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar 
[ERROR] urls[12] = file:/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar 
[ERROR] urls[13] = file:/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar 
[ERROR] urls[14] = file:/.m2/repository/org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.jar 
[ERROR] urls[15] = file:/.m2/repository/org/apache/maven/surefire/surefire-api/2.19.1/surefire-api-2.19.1.jar 
[ERROR] urls[16] = file:/.m2/repository/org/apache/maven/plugin-tools/maven-plugin-annotations/3.3/maven-plugin-annotations-3.3.jar 
[ERROR] Number of foreign imports: 1 
[ERROR] import: Entry[import from realm ClassRealm[project>com.lowes.ecm:LowesMMU:1.0.0-SNAPSHOT, parent: ClassRealm[maven.api, parent: null]]] 
[ERROR] 
[ERROR] ----------------------------------------------------- 
[ERROR] -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException 

:

하고 다음 로그를 뱉어.

그래서이 오류가 발생하는 이유는 무엇이며 어떻게 수정해야합니까?


또한 조사

메이븐 확실한 플러그인은 java.lang.String 속성을 지원합니다. 내 플러그인에는 java.io.File 속성 쌍이 있습니다.

@Parameter(property = "componentZip", defaultValue = "${componentLocation}") 
protected File componentZip; 

@Parameter(property = "manifestFile", defaultValue = "${project.basedir}/manifest.hda") 
protected File manifestFile; 

이러한 속성은 적절하게 파일을 포장하고 있는지가 예상되는 형식으로 내장되어 제작과 함께 zip 파일, 포장 내 플러그인에 의해 사용됩니다.

어떻게 이러한 구성 속성을 무시할 수 있습니까? String으로 만들고 해당 플러그인을 사용하는 곳에서 File에 전환을 추가해야합니까?

답변

0

나는 내 문제를 알아 냈습니다. 나는 에 대해 정의 된 모조을 가지고 단계를 초기화했습니다. 내 구성을 처리하고 기본값을 설정하는 중이었습니다. 설정 한 값 중 하나가 componentZip입니다. 나중 단계로 마이그레이션되었는지 확인하려면 Properties, UserProperties 및 SystemProperties에 저장하는 것이 좋습니다. 그것을 변환하고 속성 업데이트 코드 String 내 문제가 해결되었습니다.