ぶらコード:maven:その4(Plexusその3):入り口に入るの巻
今回は、入り口をめっけたので、次回はこの入り口をぶらつきつつ、その先に進んで行くとします。
前回見つけた入り口に入って行きたいのだが、ソースコードを如何に貼り付けて、ぶらり旅の記録を残していくか試行錯誤中。
とりあえず、gist使ってソースを貼ってみる。
まずは、main()メソッドの5行目で、次のmainWithExitCode()というメソッドに入っていく。
なんでわざわざmainWithExitCode()メソッドに分岐するのかってのは、main()メソッドの構造を明確にしたいからですかね。
mainWithExitCode()でくくり出した、一番やりたいことの外で、例外のハンドリングして、
正常時と異常時にそれぞれ適切な終了コードを、System.exit()を使って処理していますな。
ところで、異常時には「100」という値を返してますが、この値が意味するところは、、、特になさそうだな。
で、mainWithExitCode()に入ってみると、
冒頭で以下のコードに遭遇。
String classworldsConf = System.getProperty( CLASSWORLDS_CONF );
CLASSWORLDS_CONFというのは同じファイル内で、
protected static final String CLASSWORLDS_CONF = "classworlds.conf";
と定義されている。
こいつは、システムプロパティから読み込みを行っている訳だが、
以前登場した、mvnコマンドの「/usr/local/Cellar/maven/3.3.3/libexec/bin/mvn」というシェルスクリプトの最後に記載のある、
起動時の以下のコードでplexusの起動時に「"-Dclassworlds.conf=${M2_HOME}/bin/m2.conf" \」
として渡しているものを、ここで受け取っていることになる。
exec "$JAVACMD" \ $MAVEN_OPTS \ -classpath "${M2_HOME}"/boot/plexus-classworlds-*.jar \ "-Dclassworlds.conf=${M2_HOME}/bin/m2.conf" \ "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ ${CLASSWORLDS_LAUNCHER} "$@"
ようやくmavenとも繋がってきたな。