前回 の続きで、Eclipse のスクリプトを使った設定方法について書きます。
B. スクリプトを使って Eclipse を設定する
設定前に、Eclipse 及び Pydev を導入しておく必要がある。
また手順の B1 及び B2 は一旦開発マシンに設定すれば、以後設定する必要はない。2度目以降のプロジェクトでは、手順の B3 から行う。
- B1. Apache Maven の導入(準備)
Maven はソフトウェアプロジェクト管理ツールだ、・・・といっても私自身 Maven の機能を理解できていない。詳しいことは、参考サイトに説明があるので読んで欲しい。
スクリプトでは、Maven を使用し Eclipse プロジェクトを生成する。インストール方法の説明も同じサイトにあるので、導入して欲しい。
参考
テックスコア - Maven とは
Apache Maven Project - Welcome to Apache Maven- B2. スクリプトのダウンロードと設置(準備)
Eclipse の設定を行うスクリプトだが、次の2つある。
voa-web2py2eclipse
neo-web2py2eclipseしかしプロジェクトの名前は違うが、スクリプトの中身は同一のようだ。ドキュメントの量は voa の方が多い。
どちらのプロジェクトからもでのよいので、スクリプトをダウンロードする。voa のダウンロードファイルはテキスト形式なので、create_eclipse_project.py に改名しておく。 neo のダウンロードファイルは、tar.gz なのでファイル解凍する。
次にスクリプトの設置であるが、web2py のインストールフォルダ下の applications フォルダに、 create_eclipse_project.py をコピーする。- B3. 新しいアプリケーションを作成する(web2py IDE)
- web2py IDE の New simple application で新しいアプリケーションの作成を行う。
- B4. スクリプトを実行し、Eclipseプロジェクトファイルを作成する(コマンドプロンプト)
-
コマンドプロンプト(コマンドライン)を開き、web2pyインストールフォルダ下の applications フォルダ に移動する。
次にコマンドを起動する。コマンド書式は次の通りだ。
python create_eclipse_project.py (アプリケーション名)
引数には B3 で作成した アプリケーション名 を入れる。
次にスクリプトが動き Python インタープリタ名を質問してくるので、入力する。Windows環境下のスクリプト実行例を示す。
アプリケーション名は myapp 、インタープリタ名は python25 を指定している(1,2行目)。C:\web2py\applications>python create_eclipse_project.py myapp Name of Pydev Python interpreter to use (empty string to cancel)? python25 [INFO] Scanning for projects... [WARNING] [WARNING] Some problems were encountered while building the effective model for org.voiceofaccess:myapp_:jar:0.0.1-SNAPSHOT [WARNING] 'artifactId' contains an expression but should be a constant. @ org.voiceofaccess:${project.name}:0.0.1-SNAPSHOT, C:\web2py\applications\myapp\pom_generated.xml, line 10, column 17 [WARNING] [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build. [WARNING] [WARNING] For this reason, future Maven versions might no longer support building such malformed projects. [WARNING] [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building myapp_ 0.0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] >>> maven-eclipse-plugin:2.8:eclipse (default-cli) @ myapp_ >>> [INFO] [INFO] <<< maven-eclipse-plugin:2.8:eclipse (default-cli) @ myapp_ <<< [INFO] [INFO] --- maven-eclipse-plugin:2.8:eclipse (default-cli) @ myapp_ --- [INFO] Using Eclipse Workspace: null [INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER [INFO] Not writing settings - defaults suffice [INFO] Wrote Eclipse project for "myapp" to C:\web2py\applications\myapp. [INFO] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 6.273s [INFO] Finished at: San May 29 20:31:02 JST 2011 [INFO] Final Memory: 4M/15M [INFO] ------------------------------------------------------------------------
いくつか Warning が出ているが、Eclipse環境が生成される。環境によっては、スクリプトでエラーが発生して止まる場合がある。これらのスクリプトの問題に関しては、後述する。 - B5. Eclipse で生成したプロジェクトをインポートする(Eclipse)
-
次の手順でプロジェクトのインポートを行う。
- B6. 起動構成の設定(Eclipse)
スクリプトは web2py.py のリンクは作成してくれるので、A4 の 2.起動構成の設定 を行えばよい。
- B7. Unresolved import対策(ソース)
次回記事の Unresolved import対策 を参照のこと
以上でスクリプトを使った Eclipse 設定の手順説明を終わる。
次に、スクリプトを使った設定で発生する問題ついて簡単に解説する。
B付録 スクリプトの問題点と解決策
前章で説明したスクリプトを使った設定であるが、いくつか問題点があるので説明していく。
- スクリプト実行時にエラーが発生する
環境によって違うと思うが、スクリプト実行時にエラーがでることがある。
C:\web2py\applications>python create_eclipse_project.py myapp Name of Pydev Python interpreter to use (empty string to cancel)? python25 Traceback (most recent call last): File "create_eclipse_project.py", line 274, in <module> main(sys.argv[1:]) # Start the process (without the application name) File "create_eclipse_project.py", line 150, in main create_eclipse_project(*args) File "create_eclipse_project.py", line 209, in create_eclipse_project subprocess.call(['mvn', '--file', pom_dest, 'eclipse:eclipse']) File "C:\Python25\lib\subprocess.py", line 444, in call return Popen(*popenargs, **kwargs).wait() File "C:\Python25\lib\subprocess.py", line 594, in __init__ errread, errwrite) File "C:\Python25\lib\subprocess.py", line 822, in _execute_child startupinfo) WindowsError: [Error 2] The system cannot find the file specified
上記のようなエラーが出た場合は、スクリプトを修正すれば実行可能になる。208・209行目近辺に次のコードがある。
subprocess.call(['mvn', '--file', pom_dest, 'eclipse:eclipse'])
これに shell=True オプションを追加して保存する。subprocess.call(['mvn', '--file', pom_dest, 'eclipse:eclipse'], shell=True)
- web2py.py オブジェクトのリンク異常
これも環境によって発生するようだ。web2py.py にリンクにエラーが出ている場合、右クリックメニューの [プロパティ] から正常なリンクに修正する。もしくは一旦削除して、A4 の 1. web2py.py のリンクを設定する を行う。
- PyDev - PYTHONPATH のソースフォルダ設定でフォルダが全て登録されない
スクリプトでは、web2pyアプリケーションのソースフォルダ全部は登録されない。このため、A3. Pydev - PYTHONPATH の設定 と同様の設定を行えばよい。
ただこの PyDev のソースフォルダ設定は、指定しても指定しなくても動作にはほとんど影響はないようだ。このため登録しなくても良い。しかし登録しない場合、一部の分析ツールは動作しないとのことだ。
またソースフォルダ設定すると、パッケージエクスプローラ上は設定したフォルダが上位に表示されるので、その点だけでも登録したほうが良いだろう。
参考: PyDev.org - manual
記事が長くなってしまったので、Unresolved import対策 については次回に続きます。