6

編集: Derby コミュニティによると、Eclipse プラグインは、Derby プロジェクトに沿って保守も自動ビルドも行われません。

しかし、まだこのプラグインを使用している人はいますか? もしそうなら、彼/彼女が実際のビルドを公開する場所はありますか? (うまくいけば) Eclipse Juno で実行されますか?

または、これが本当の行き止まりである場合、代替手段は何ですか?


元の問題

使用する

  • jdk1.7.0_03
  • Eclipse IDE for Java EE Developers (Win32) バージョン Juno (2012/06/14 からビルド)
  • derby-core-plugin 10.8.2 および -ui-plugin 1.1.3 (最新バージョン 10.9.1.0 用の Eclipse プラグインがないため)

問題
新しいダービー ネイチャーを追加しようとすると (Java プロジェクトを右クリック -> [Apache Derby] -> [Apache Derby ネイチャーを追加])、次のメッセージしか表示されません。

Apache Derby Ui Plug-in
Error adding Derby jars to the project:
org.eclipse.ui.internal.WorkbenchWindow cannot be cast to
org.eclipse.jface.window.ApplicationWindow

何か案は?

4

2 に答える 2

5

アパッチ ダービー db-derby-10.9.1.0-src / Eclipse 4.2.1 (ジュノ) / Java 7

ある種の修正。さらに調査が必要ですが、これでうまくいきます。

参照:
db-derby-10.9.1.0-src/BUILDING.html
db-derby-10.8.1.2-src/plugins/eclipse/Readme.txt

Apache Derby のソース zip をダウンロードします。
zip を解凍します。
ソース ディレクトリに移動します。
デシベル-ダービー-10.9.1.0-src

次のアリ ターゲットを実行します。
ant -quiet clobber
ant -quiet buildsource
ant -quiet buildjars

コア プラグインをビルドします。
アリプラグイン

これで、db-derby-10.9.1.0-src/jars/sane ディレクトリーに derby_core_plugin_10.9.1.zip ファイルがあるはずです。

注: Eclipse IDE は実行されていないはずです。上記の ant プラグイン タスクによって作成された derby コア プラグインを抽出し、内容を Eclipse プラグイン ディレクトリにコピーします。

エクリプスを実行します。

ソースツリーから org.apache.derby.ui をインポートします。
(インポート > 一般 > 既存のプロジェクトをワークスペースに)

plugin.xml ファイルを開く

[概要] タブで、バージョン番号を 1.1.4 に上げます。

ファイルを保存します。

バグは...
1.) パッケージ org.apache.derby.ui.popup.actions.AddDerbyNature.java
2.) パッケージ org.apache.derby.ui.popup.actions.RemoveDerbyNature.java

これら 2 つのユニットで .setStatus メソッドが呼び出される場所。


注: ( ApplicationWindow の javadoc から)

void org.eclipse.jface.window.ApplicationWindow.setStatus(文字列メッセージ)

このウィンドウのステータス ラインに表示されるメッセージを設定またはクリアします (1 つ以上ある場合)。ウィンドウにステータス行がない場合、このメソッドは効果がありません。

パラメータ:
message ステータス メッセージ、またはクリアする場合は null

したがって、IDE にはステータス行がないと仮定しましょう。したがって、この呼び出しは Java doc によると効果がありません。

Commenting out these method calls from:  
AddDerbyNature.java  
//((ApplicationWindow) window).setStatus(Messages.ADDING_NATURE);  
//((ApplicationWindow) window).setStatus(Messages.DERBY_NATURE_ADDED);  

RemoveDerbyNature.java  
//((ApplicationWindow)window).setStatus(Messages.REMOVING_NATURE);  
//((ApplicationWindow)window).setStatus(Messages.DERBY_NATURE_REMOVED);  

テスト:
Eclipse アプリケーションとして実行。

プロジェクトを作成します。「org.apache.derby.ui.test」と呼ぶかもしれません。

プロジェクトを右クリック / Add Apache Derby nature を選択し
ます。エラーはありません。

プロジェクトを右クリックし、[Apache Derby の性質を削除] を選択し
ます。エラーはありません。

自然をもう一度追加して、他のメニュー項目をテストします。
プロジェクトを右クリック / Add Apache Derby nature を選択

プロジェクトを右クリック / Start Derby Network Server を選択
エラーなし、サーバーが開始されました。

コンソール ログから... Sun Jan 27 17:51:29 EST 2013 : Basic サーバー セキュリティ ポリシーを使用してセキュリティ マネージャがインストールされました。Sun Jan 27 17:51:29 EST 2013: Apache Derby Network Server - 10.9.1.0 - (Unversioned directory) が開始され、ポート 1527 で接続を受け入れる準備ができました

注: バージョン管理されていないディレクトリ メッセージの意味がわからない

プロジェクトを右クリックして、Derby Network Server の停止を選択
します。エラーはありません。サーバーは停止しました。
Sun Jan 27 17:53:32 EST 2013: Apache Derby Network Server - 10.9.1.0 - (Unversioned directory) シャットダウン

サーバーのバックアップを開始します …<br> プロジェクトを右クリック / Start Derby Network Server を選択します

sql フォルダーを作成します。
test.sql ファイルを作成する

私のテストSQLファイル。

connect 'jdbc:derby://localhost:1527/TESTDB;create=true;user=test;password=test;';  
-- drop User Indexes - ignore error if first time creating   
drop index UserNameIdx1;  
-- drop the table if it exists - ignore error if first time creating  
drop table TEST_USER;  
-- create the table  
create table TEST_USER (  
    ID integer generated by default as identity,  
    USER_NAME varchar(255) not null,  
    FIRST_NAME varchar(255),  
    LAST_NAME varchar(255),  
    PASSWORD varchar(255),  
    ENABLED integer,  
    CREATED_STAMP timestamp,  
    CREATED_TX_STAMP timestamp,  
    LAST_UPDATED_STAMP timestamp,  
    LAST_UPDATED_TX_STAMP timestamp,  
    constraint TEST_USER_PK primary key (ID)  
);  
-- insert some data -- oops --- will mess with the ID generator, see the alter table restart line below.  
insert into TEST_USER values(0, 'admin','admin','admin','admin',1,'2013-01-18 12:00:00.000','2013-01-18 12:00:00.000','2013-01-18 12:00:00.000','2013-01-18 12:00:00.000');  
-- make the USER_NAME unique  
create unique index UserNameIdx1 on TEST_USER(USER_NAME);  
-- reset the generator  
alter table TEST_USER alter column ID restart with 1;  

ファイルを右クリック > Apache Derby > 「ij」を使用して SQL スクリプトを実行

プロジェクト ワークスペースを更新すると、TESTDB フォルダーが作成されます。

データベースが作成されました。Ok。

zip を作成します。

プロジェクトを右クリック > エクスポート

Plug-in Development > Deplyable plug-ins and fragment をクリックします。
宛先タブ
アーカイブ・ファイル
/derby_ui_plugin_1.1.4-fix.zip
オプション・タブ
個々の JAR アーカイブとしてのパッケージ・プラグインの選択を解除

終了をクリックします。

テスト インスタンスを閉じる/終了します。
Eclipse を終了します。

上記で作成した zip を解凍します。

その内容をプラグイン ディレクトリの Eclipse (Juno) プラグイン ディレクトリにコピーします。

エクリプスを再起動します。新しいプロジェクトを作成します。

プロジェクトに Apache Derby (10.9.1) ネイチャーをインストールできるはずです。

注: これを Java 7 でビルドした場合、それより古い JVM バージョンで動作するとは思わないでください。

于 2013-01-28T00:41:18.657 に答える
4

Eclipse用のDerbyUIプラグインは、通常のDerbyコミッターの誰もがそのプラグインを使用しておらず、コミュニティからそれを維持するボランティアがいないため、数年間維持されていないと思います。したがって、古いバージョンのEclipseでのみ機能すると思います。

現在のEclipseで動作させるために、最新の状態にするのはそれほど手間がかからないのではないかと思います。その機能に興味がある場合は、ダービーコミュニティがあなたからの連絡をお待ちしていると確信しています。

参照:Eclipse用のderbyプラグインの開発を停止したので、Eclipseでapacheからderbyを使用することは可能ですか?

于 2012-07-10T03:45:29.307 に答える