"myPlugin"이라는 플러그인을 개발하는 데 어려움이 있습니다.리팩토링 후 sonar-packaging-maven-plugin에 문제가 발생했습니다.
배경 : 나는 Manning 사가 "SonarQube in Action"이라는 책을 읽었습니다. 자신 만의 플러그인을 개발하기위한 가이드가 적었습니다 (개발 과정에서 redmine 플러그인을 사용했습니다). 그것은 기본 프레임 워크를 만들기 위해 sonar-plugin-archetype을 사용하라고했습니다.
리팩토링 전 상황 : 나는 플러그인을 작성 했으므로 잘 작동합니다. 일부 리팩토링을 수행 할 때 문제가 발생했습니다. 내 트리 (ecplise 사용)의 src 폴더에있는 모든 패키지를 리팩토링하기 전에 "main.java.org.sonar.plugins.myplugin"이라고했지만 각 클래스 내의 패키지 해체는 "org.sonar.plugins.myplugin"이었습니다. 이것은 sonar-plugin-archetype을 사용하여 생성 된 기본 설정입니다.
sonar-packaging-maven-plugin의 pom.xml 내의 설정은 한 번 다음과 같습니다.
Pom-snippet before any changes were done:
<plugin>
<groupId>org.codehaus.sonar</groupId>
<artifactId>sonar-packaging-maven-plugin</artifactId>
<version>1.9</version>
<extensions>true</extensions>
<configuration>
<pluginClass>org.sonar.plugins.myplugin.myPlugin</pluginClass>
</configuration>
</plugin>
지금까지 모든 것이 정상적으로 작동했습니다. 이제 우리는 내 문제에 임합니다. 리팩토링 후
상황 : 내 회사로서 클래스와 패키지의 일부 명명 conevtions을 가지고는 내가 트리에서 패키지 이름 변경 "com.mycompany.sonar.plugins.myplugin"또한 각 클래스 내에서 패키지 decleration에 com.mycompany.sonar.plugins.myplugin "으로 변경하십시오. 그런 다음 sonar-packaging-maven-plugin의 classPath 옵션을 "com.mycompany.sonar.plugins.myplugin.myPlugin"으로 변경했습니다. 내가 한 말은 "조직"을 바꾸는 것뿐입니다. "com.mycompany."에 입력하십시오.
"컴파일"명령을 실행하면 모든 것이 효과가있었습니다. "package"를 사용하면 sonar-packaging-maven-plugin이 주어진 클래스를 찾을 수 없기 때문에 작동하지 않습니다 (아래 콘솔 출력 참조). 다시 모든 것을 다시 가동시킬 때 다시 작동합니다.
[...]
[INFO] --- sonar-packaging-maven-plugin:1.9:sonar-plugin (default-sonar-plugin) @ sonar-projectkeychecker-plugin ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 19.649 s
[INFO] Finished at: 2014-04-02T11:42:01+01:00
[INFO] Final Memory: 13M/67M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.sonar:sonar-packaging-maven-plugin:1.9:sonar-plugin (default-sonar-plugin) on project sonar-myplugin-plugin: Plugin class not found: 'com.mycompany.sonar.plugins.myplugin.myPlugin-> [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/MojoExecutionException
내 질문 : 왜 나의 새로운 이름은 작동하지 않습니다? sonar-packaging-maven-plugin을위한 내부 컨비니언이 있습니까 (예 : 패키지 이름이 "org.sonar"로 시작해야합니다)?
나를 도와이 긴 텍스트와 시도를 읽어 주셔서 감사합니다 :)
새 POM 스 니펫을 제공 할 수 있습니까? – cowls
정확히보고 싶은 게 있니? 나는 내 질문에 그것을 추가했다. (나는 이미 입력 실수가 없다고 확신했다.) – Krummy