Jenkinsプラグイン開発 環境構築に関するメモ(on Windows7:Eclipse対応)
下記エントリの続き。書籍やWeb等を参考に、Eclipse上でデバッグ可能な状態に持って行くまでをメモ。
C:\work_jenkinsplugin\sample>mvn -DdownloadSources=true -DdownloadJavadocs=true -DoutputDirectory=target/eclipse-classes eclipse:eclipse
:
:
[INFO] Wrote Eclipse project for "sample" to C:\work_jenkinsplugin\sample.
[INFO]
Sources for some artifacts are not available.
List of artifacts without a source archive:
o xalan:serializer:2.7.1
o xerces:xercesImpl:2.9.1
o jaxen:jaxen:1.1-beta-11
o commons-jelly:commons-jelly-tags-xml:1.1
o org.jvnet.hudson:commons-jelly-tags-define:1.0.1-hudson-20071021
o org.springframework:spring-jdbc:1.2.9
o org.springframework:spring-dao:1.2.9
o org.apache.ant:ant-launcher:1.7.1
o javax.servlet:jstl:1.1.0
o avalon-framework:avalon-framework:4.1.3
o stax:stax-api:1.0.1
o asm:asm-commons:2.2.3
o asm:asm-tree:2.2.3
o asm:asm:2.2.3
o org.jenkins-ci.main:jenkins-war:1.424
o com.jcraft:jsch:0.1.38
o org.jenkins-ci.main:jenkins-war:1.424
Javadoc for some artifacts is not available.
List of artifacts without a javadoc archive:
o javax.servlet:servlet-api:2.4
o org.jvnet.hudson:trilead-ssh2:build212-hudson-5
o org.jvnet.hudson:jtidy:4aug2000r7-dev-hudson-1
o org.jruby.ext.posix:jna-posix:1.0.3
o commons-discovery:commons-discovery:0.4
o commons-logging:commons-logging:1.1
o commons-collections:commons-collections:3.2
o org.jvnet.hudson:commons-jexl:1.1-hudson-20090508
o org.jvnet.hudson.dom4j:dom4j:1.6.1-hudson-3
o org.kohsuke.stapler:stapler-adjunct-codemirror:1.1
o org.jenkins-ci:htmlunit:2.6-jenkins-4
o xalan:xalan:2.7.1
o xalan:serializer:2.7.1
o commons-httpclient:commons-httpclient:3.1
o org.jvnet.hudson:htmlunit-core-js:2.6-hudson-1
o xerces:xercesImpl:2.9.1
o net.sourceforge.cssparser:cssparser:0.9.5
o org.w3c.css:sac:1.3
o antlr:antlr:2.7.6
o org.jvnet.hudson:xstream:1.3.1-hudson-8
o org.apache.ant:ant:1.8.0
o javax.mail:mail:1.4
o jaxen:jaxen:1.1-beta-11
o commons-jelly:commons-jelly-tags-fmt:1.0
o commons-jelly:commons-jelly-tags-xml:1.1
o org.jvnet.hudson:commons-jelly-tags-define:1.0.1-hudson-20071021
o org.acegisecurity:acegi-security:1.0.5
o org.springframework:spring-core:2.5
o org.springframework:spring-jdbc:1.2.9
o org.springframework:spring-beans:2.5
o org.springframework:spring-dao:1.2.9
o org.springframework:spring-context:2.5
o oro:oro:2.0.8
o log4j:log4j:1.2.9
o org.apache.ant:ant-launcher:1.7.1
o jline:jline:0.9.94
o org.springframework:spring-web:2.5
o aopalliance:aopalliance:1.0
o org.springframework:spring-aop:2.5
o javax.servlet:jstl:1.1.0
o logkit:logkit:1.0.1
o avalon-framework:avalon-framework:4.1.3
o com.sun.xml.txw2:txw2:20070624
o net.java.dev.jna:jna:3.3.0-jenkins-2
o org.codehaus.woodstox:wstx-asl:3.2.7
o stax:stax-api:1.0.1
o org.jenkins-ci:jmdns:3.4.0-jenkins-2
o org.kohsuke.jinterop:j-interop:2.0.6-kohsuke-1
o org.kohsuke.jinterop:j-interopdeps:2.0.6-kohsuke-1
o asm:asm-commons:2.2.3
o asm:asm-tree:2.2.3
o asm:asm:2.2.3
o org.jenkins-ci.main:jenkins-war:1.424
o com.jcraft:jsch:0.1.38
o org.apache.jackrabbit:jackrabbit-webdav:1.5.0
o org.apache.jackrabbit:jackrabbit-jcr-commons:1.5.0
o org.slf4j:slf4j-api:1.5.3
o org.slf4j:slf4j-nop:1.5.3
o org.jenkins-ci.svnkit:svnkit:1.3.4-jenkins-4
o org.jvnet.hudson:netx:0.5-hudson-2
o org.jenkins-ci.main:jenkins-war:1.424
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 21 minutes 37 seconds
[INFO] Finished at: Tue May 01 07:23:06 JST 2012
[INFO] Final Memory: 54M/194M
[INFO] ------------------------------------------------------------------------
C:\work_jenkinsplugin\sample>
- 成果物を確認。
C:\work_jenkinsplugin\sample>dir
ドライブ C のボリューム ラベルは ローカル ディスク です
ボリューム シリアル番号は 8609-AF4E です
C:\work_jenkinsplugin\sample のディレクトリ
2012/05/01 07:23 <DIR> .
2012/05/01 07:23 <DIR> ..
2012/05/01 07:23 56,511 .classpath
2012/05/01 07:23 415 .project
2012/05/01 07:23 <DIR> .settings
2012/05/01 01:53 1,022 pom.xml
2012/05/01 01:53 <DIR> src
2012/05/01 07:23 <DIR> target
3 個のファイル 57,948 バイト
5 個のディレクトリ 153,141,886,976 バイトの空き領域
C:\work_jenkinsplugin\sample>
- Eclipseを起動、プロジェクトを取り込む。
- 取り込んだ。この時点ではエラーが出ている。環境変数"M2_REPO"が解決出来ていない模様。
- [ウインドウ][設定][Java][ビルドパス][クラスパス変数]で新たに"M2_REPO"を作成。ここまでの手順で行くと『C:\Users\(ユーザ名)\.m2\repository』となるのでその値を設定。ビルドエラーを解決。
デバッグ設定
- 環境変数を追加。
| MAVEN_OPTS | -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n |
MAVEN_OPTS の役割はデバッガポート8000ですべてを起動するためのものです。 こうすればIDEからこのポートへデバッグセッションを開始することができます。
C:\>echo %MAVEN_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n
- [リモートアプリケーション]の構成で新規作成を行う。ポート番号を起動時の内容と同期。(ポート番号:上記MAVEN_OPTSで設定したaddress=の値と同じ値を設定。この手順の場合は8000で待ち受ける形となる)(※ここでは設定の保存のみ。デバッグはまだ実行せず)
- Mavenで操作したフォルダに移動し、Maven経由でプラグインを起動。(※特に指定のない場合、ポート番号:8080で起動される。任意のポートでJenkinsを起動する場合は『mvn hpi:run -Djetty.port=(ポート番号)』の形式で実行)
C:\>cd work_jenkinsplugin
C:\work_jenkinsplugin>cd sample
C:\work_jenkinsplugin\sample>mvn hpi:run
Listening for transport dt_socket at address: 8080
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - org.example:sample:hpi:1.0-SNAPSHOT
[INFO] task-segment: [hpi:run]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing hpi:run
[INFO] [hpi:validate {execution: default-validate}]
[INFO] [enforcer:display-info {execution: default}]
[INFO] Maven Version: 2.2.1
[INFO] JDK Version: 1.7.0_03 normalized as: 1.7.0-3
[INFO] OS Info: Arch: amd64 Family: windows Name: windows 7 Version: 6.1
:
:
- 上記で設定した[リモートアプリケーション]の構成をデバッグ実行。リモートアプリケーションとして立ち上がる。
- ブラウザ経由(上記設定の場合だと http://localhost:8080/ )でアクセス。Eclipseの方でデバッグポイントを設定している場合だと、上手いこと止まってくれると思います。







