Javaオープンソースプロジェクトのソースコードの読み取り方法と二次開発方法


これまで、Javaオープンソースプロジェクトのソースコードを読みたいと思っていましたが、いくつかのコードを修正して、オープンソースプロジェクトの二次開発を実現したいと思っていました.しかし、オープンソースプロジェクトのソースコードをそのままEclipseにインポートすると、コンパイルできないエラーが多く報告されます.直接Eclipseを通じてオープンソースプロジェクトのソースコードを開くことができて、少なくとも可視化のソースコードの読書、ソースコードのナビゲーションの目的を達成することができて、やはりある程度ソースコードの読書が不快な問題を解決することができて、直接開いてソースファイルプロジェクトのディレクトリの結果を変えていないため、修正したコードに対して、コマンドラインを通じてソースファイルプロジェクトのディレクトリを見つけることができて、mvnまたはantを使用してプロジェクトをコンパイルし、変更後のプロジェクトが正しいかどうかを確認します.
現在のJavaオープンソースプロジェクトはほとんどmavenまたはantでパッケージ化されているため、上記の方法ではソースコードを読む問題をある程度解決し、少なくともEclipseでソースコード間のナビゲーションを実現することができるが、Eclipseでソースコードをコンパイルしようとすると、デバッグさえできなくなる.
こんなに強力なEclipse、どうしてこんなに力が入らないのか、元凶はやはり自分があまりにも寡聞で、こんなに強力なmaven、Eclipseはどうしてプラグインのサポートがなくて、mavenプラグインがあって、Eclipseはmavenプロジェクト(つまり大多数のオープンソースプロジェクトの目録構造)を導入して、Eclipseの上で直接編集することができて、甚だしきに至ってはEclipseを通じてコンパイルして、ソースプロジェクトをデバッグします.
オープンソースプロジェクトのソースコードを読む方法がわかった以上、次はEclipseのmavenプラグインをインストールし、ソースコード、二次開発...
前述したように、本当に有効かどうかは、Axis 2ソースコードを例に、サービス/listServicesリクエストの処理ソースコードを修正し、WSDL方式でのみ記述されていたWebサービスがOWL 4 WSのWebサービス記述をサポートするようにした小さな実験例を示します.
ステップ1:mavenのインストール
mavenのインストールは本当に簡単です. http://maven.apache.org/download.html 最新のmavenバージョンをダウンロードし、解凍してMAVENを構成します.HOMEとMAVEN_OPTSおよびpath環境変数でよい.MAVEN_HOMEはmavenのとディレクトリを指し、MAVEN_OPTSは、maven実行時のパラメータを設定します.MAVENのデフォルト設定のメモリが少ないため、大きなプロジェクトをコンパイルするときにOutofMemoryが発生する可能性があります.私がMAVEN_を設定していない場合OPTSでAxis 2のソースコードをコンパイルするとOutofMemoryの場合があり、最後にpathを配置して%MAVEN_を指すOPTS%binでいいです.コマンドラインインタフェースでmavenコマンドを直接使用できるようにします.もっとmavenの紹介について、「Maven実戦」という本をお勧めします.「Maven in action」という本もあります.中国人が書いたもので、分かりやすいです.
ステップ2:Eclipseのmavenプラグインをインストールする
Help->Install New Software->Add、以下の内容を追加します.
m2e - http://download.eclipse.org/technology/m2e/releases
のように http://www.eclipse.org/m2e/download/ 図示するように、上記のプラグインの経路はm 2 eの最新バージョンであるべきであり、使用前のバージョンでは他のプラグインに依存する場合があり、m 2 eプラグインがインストールできない可能性があり、SBのEclipseもm 2 eがどのプラグインに依存してインストールできないのかを提示していないため、度娘は助けてくれるが、使用できるものはほとんど見つからない.
m 2 eプラグインをインストールすると、Eclipseでmaven形式のプロジェクトを開くことができ、Eclipseでmaven形式のソースプロジェクトをコンパイルすることができます.もちろん、Eclipseで直接Mavenプロジェクトを作成し、maven方式でプロジェクトを管理することもできます.mavenは本当に強力で、Java言語でプログラムを書く場合は、mavenの真心を知る必要があります.インストール後にプロジェクトを作成したり、プロジェクトをインポートしたりすると、Mavenを選択して行うことができます.プラグインをインストールすると、次のような効果が得られます.
ステップ3:Eclipseでソースコードを変更する
Eclipseでmavenプロジェクトをインポートすることで、Eclipseの可視化ナビゲーション機能を使用してソースコードを読み取り、変更することができます.また、関連するmvnコマンドを直接実行することもできます.インポート後のプログラムは下図のようになります.
ステップ4:mvn packageでソースコードをコンパイルしてパッケージ化し、リリースバージョンを取得し、テストを行う
mavenがあれば、ソースコードのコンパイルやパッケージングが容易になり、直接Eclipseで行い、プロジェクトの右クリックRun Asまたはプロジェクトのpom.xmlファイルRun Asを右クリックすればよい.次の図に示します.
もちろん、直接コマンドラインを通じてパッケージ化することもできます.私はコマンドラインを採用することを選択しました.Axis 2ソースコードの2つのモジュールしか修正していません.この2つのモジュールはそれぞれaxis 2-transport-httpとaxis 2-webappです.この2つのモジュールのコマンドライン編集コマンドは次のとおりです.
C:\OpenSource\axis2-1.6.0-src\axis2-1.6.0\modules\transport\http>mvn clean install
[INFO] BUILD SUCCESS

C:\OpenSource\axis2-1.6.0-src\axis2-1.6.0\modules\webapp>mvn clean package
[INFO] Building war: C:\OpenSource\axis2-1.6.0-src\axis2-1.6.0\modules\webapp\target\axis2.war
[INFO] BUILD SUCCESS

mvn installはaxis 2-transport-httpモジュールをmavenローカルウェアハウスにインストールしますが、mvn packageはソースプログラムを指定したフォーマットでパッケージ化します.webapppモジュールのpom.xmlファイルには他のプロジェクトやaxis 2自体のモジュール、例えばtransport-httpモジュールが指定されているため、パッケージ化時にローカルウェアハウスから依存するモジュールを自動的に取得し、パッケージ化します.ローカルウェアハウスに対応するモジュールがない場合は、オンラインで自動的にダウンロードされます.これも、オープンソースプロジェクトを初めてコンパイルするのに時間がかかる理由です.
axis 2.warパッケージをtomcatのwebappディレクトリにコピーし、tomcatを起動し、ブラウザに入力します.http://localhost:8080/axis2/services/listServicesを選択すると、OWL 4 WSが修正されたページでサポートされていることがわかります.次の図に示します.
振り返ってみると、この文章はくだらない話ばかりですが、mavenは本当に灰常強で、Javaオープンソースプロジェクトのソースコードを読みたい、あるいはこれらのソースコードに基づいて二次開発衝動のある子供靴に対して、mavenの勉強を逃さないようにしたいと思っていますが、このような方法でソースコードを修正しているような気がします.それからテストを行うのはやはりとても不便で、コマンドラインのコンパイル、またcopyからtomcatの下でテストして実行しなければなりません.どちらがソースコードをもっとよく読んで二次開発する方法があるか、ぜひ教えてください.