'Jenkins Plugin 개발'에 해당되는 글 2건

  1. 2022.05.16 HelloWorld 따라가기
  2. 2022.05.16 Jenkins Plugin을 개발 관련 선행 작업

한글로 검색되는 Jenkins Plugin의 결과들은 maven으로 작업을 한 뒤에 eclipse에서 import 하는 식으로 나와 있다.

아직 영문을 검색해 보진 못하였지만,

그래서 많이 나오는 것 위주로 진행해 보았으나 BUILD FAILED 결과를 맞고 말았다.

 

일단 최초 시도한 것부터 열거해 보면 다음과 같다.

그전에 테스트 환경부터 정리해 본다.

OS windows 10, amd64
java version 1.8.0_191, 
JAVA_HOME C:\Program Files (x86)\Java\jre1.8.0_91
maven 3.2.5

 

1. Jenkins repository용도의 settings.xml 파일 설정

maven repository에 settings.xml을 설정하는 내용이 최초로 소개가 된다. (여기서 settings.xml의 정보는 %MAVEN_HOME%conf 디렉토리에 있는 settings.xml과는 다른 것이다.)

그러나, 본인의 컴은 집에서 개인용이 아닌 사무실 작업용 컴퓨터여서 선듯, settings.xml 정보를 기 사용중인 reposigitory에 설정하기가 두려웠다. (repository가 한번 꼬이면 이전에 작업했던 거, 작업 중인 것들이 다 초기화를 해야하는 두려움 때문에)

그래서 찾아보니 Jenkins용 workspace 아래에 해당 settings.xml을 놔두면 꼬이는 현상이 없을 거이라는 글을 확인하고 바로 진행하였다.

workspace C:\\workspace_Jenkins_Plugin

위의 디렉토리에 settings.xml 파일을 만들고 다음과 같은 내용을 채웠다.

<settings>
  <pluginGroups>
    <pluginGroup>org.jenkins-ci.tools</pluginGroup>
  </pluginGroups>


  <profiles>
    <!-- Give access to Jenkins plugins -->
    <profile>
      <id>jenkins</id>
      <activation>
        <activeByDefault>true</activeByDefault> <!-- change this to false, if you don't like to have it on per default -->
      </activation>
      <repositories>
        <repository>
          <id>repo.jenkins-ci.org</id>
          <url>http://repo.jenkins-ci.org/public/
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>repo.jenkins-ci.org</id>
          <url>http://repo.jenkins-ci.org/public/
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <mirrors>
    <mirror>
      <id>repo.jenkins-ci.org</id>
      <url>http://repo.jenkins-ci.org/public/
      <mirrorOf>m.g.o-public</mirrorOf>
    </mirror>
  </mirrors>
</settings>

 

2. Plugin 생성

이제 Plugin을 생성할 단계인데 다음과 같은 명령어를 수행해야한다고 나옵니다.

mvn -U org.jenkins-ci.tools:maven-hpi-plugin:create

이렇게 하면 앞서 생성한 settings.xml 파일이 repository에 존재하지 않기 때문에 문제가 발생합니다.

따라서, 다음의 추가 명령어를 더붙여서 진행합니다.

mvn -s settings.xml -U org.jenkins-ci.tools:maven-hpi-plugin:create

그러나 역시 BUILD FAILED가 발생합니다.

여기서 환경 설정을 변경할 생각을 못했습니다.....(환경 설정이 변경되었어도 여전히 BUILD FAILED가 발생한다.)

다시 검색에 들어가 보니 Jenkins에서 제공하는 방법이 있는데 이게 2번에 수행한 명령어와 상이합니다.

그래도 일단 끝을 봐야 하니 해당 명령어로 변경하여 다시 진행해 봅니다. (https://www.jenkins.io/doc/developer/tutorial/create/)

mvn -s settings.xml -U archetype:generate -Dfilter="io.jenkins.archetypes:"

이것도 앞서와 같이 "-s settings.xml"을 덧붙여서 진행합니다.

BUILD FAILED가 발생합니다.

로그를 보니 maven 버전을 요구하고 있네요 (maven 3.3.3)

- 캡쳐된 로그가 없습니다.

maven 버전을 다음과 같이 변경합니다. (기타 프로젝트는 어찌될 지 모르겠지만...)

maven 3.8.5

다시, Plugin 생성을 진행한 결과 드디어 BUILD SUCCESS가 떨어집니다.

 

3. acrtifact 명으로 생성된 디렉토리 명 변경

참고한 Jenkins 사이트에서는 특별한 사정이 있어서 디렉토리 명을 바꿔주길 바라네요.

$ mv demo demo-plugin 
$ cd demo-plugin
$ mvn verify

 

4. mvn verify

혹시나 싶어 "-s ..\settings.xml"을 추가했더니 실제 MAVEN의 settings.xml 파일을 찾고 싶어하는 로그가 보이더군요.

그래서 이 명령어에는 "-s ..\settings.xml" 옵션을 빼고 진행해 보았으나, BUILD FAILED가 발생하였습니다.

로그에서 %JAVA_HOME%lib\tools.jar 파일이 존재하지 않는다고 합니다.

검색을 해 보니 JRE는 tools.jar 파일이 존재하지 않기 때문에 JDK로 설정되어야 한다고 합니다.

%JAVA_HOME% 환경 파일을 다음과 같이 변경합니다.

JAVA_HOME C:\Java\jdk1.8.0_191

생성된 디렉토리를 삭제한 후 2번부터 재 진행하여 BUILD SUCCESS가 떨어지는 것을 확인하였습니다.

 

5. 이클립스로 import가 가능한 작업 진행 (https://blog.naver.com/PostView.naver?blogId=kylepark77&logNo=220042836459)

다음의 명령어를 진행한다.

mvn -DdownloadSources=true -DdownloadJavadocs=true -DoutputDirectory=target/eclipse-classes eclipse:eclipse

BUILD SUCCESS

 

그렇지만, 이클립스에서 import 하면 에러 및 경고 등이 발생

더 이상 진행하지 못함

 

다음편으로 ...

'개발 > Jenkins Plugin' 카테고리의 다른 글

Jenkins Plugin을 개발 관련 선행 작업  (0) 2022.05.16
Posted by 테리
:

1. 이클립스 4.5 ~ 4.6.2 이하 버전에 다음과 같은 오류가 발생한다 (따라서 4.2 버전 이하나  4.6.2 이상 버전을 요구하고 있다.)

"Only a type can be imported. hudson.model.Job resolves to a package".

https://bugs.eclipse.org/bugs/show_bug.cgi?id=495598

 

495598 – incorrect package vs class resolution

Maven project showing the issue no flags Details File with BuildTrigger folder and class no flags Details Screenshot 1 no flags Details Screenshot 2 no flags Details Screenshot 3 no flags Details

bugs.eclipse.org

2. 플러그인에 라이센스를 명확하게 식별하도록 해야 한다.

다음의 여러 사례 중 하나 또는 여러개를 사용하도록 권장하고 있다.

각 소스 파일의 상단에 라이센스 헤드를 추가
 MAVEN 프로젝트의 루트에 LICENSE 파일 추가
POM의 <licenses> 섹션 입력

아무것도 정의되지 않은 경우 코드는 MIT 라이선스​(https://en.wikipedia.org/wiki/MIT_License) 조건에 해당하는 것으로 간주한다.

'개발 > Jenkins Plugin' 카테고리의 다른 글

HelloWorld 따라가기  (0) 2022.05.16
Posted by 테리
: