2010-12-29 8 views
2

Intellij IDEAのJava前処理サポートについて知っている人はいますか?おそらくサードパーティのプラグインがいくつかありますか?ただ、例えばIntellij IDEAのJava前処理サポート

:ここ(前処理をサポートしています)Netbeansのために書かれたJavaコードの一部です:組み込みのプリプロセッサ

//#if JSR82 
//# import javax.bluetooth.*; 
//#endif 

Netbeansのは、それら//#キーとコメントを解析かに応じて、コードの断片行をコメント定義されたプリプロセッサキー。

私はIntellij IDEAで何か類似していると思います。

ありがとう事前に

+0

あなたは、前処理によって何を意味するのですか? C/C++ –

+0

同様の#ifdef何とか、何とか? JSF82をサポート/必要とするバージョンとそうでないバージョン。 – barmaley

+1

あなたが同じライブラリの二つの別々のバージョンを作成しようとしていますのように – sblundy

答えて

6

を書いて見ているということだと思います。

私は、JavaプリプロセッサとIntelliJ IDEAで幅広く作業してきました。私はプリプロセッサで動作することを許可するプラグイン/アドオンについてはわかりませんが(それはとなるでしょう)です。

さらに、Javaとプリプロセッサに関する議論が行われるときには、人々は「そのようなものは存在しません」と指摘します

もちろん、これらのいくつかが存在します。例えば、ここには、「プリプロセッサディレクティブを使ったJava MEの移植」と呼ばれるクールなNokia(その会社について聞いたことがあります。

真実は:Java は、特にJ(2)MEの世界ではなく、そのWORAの約束を果たしました。

http://wiki.forum.nokia.com/index.php/Java_ME_Porting_using_preprocessor_directives

カスタム(悲しげにカスタム)プリプロセッサとコードジェネレータ(優秀)トローブAPIのソースコードのようなもので見ることができ、使用する別の非常に正当な理由:基本的には同じことを繰り返さないようにする唯一の方法ですすべてのJavaプリミティブのコード。

「同じ」.jarの異なるバージョンを生成したいと思っている人については、作成されたさまざまな.jarsにすべてのコードを入れずに知りました。確かに、これはの "Java friendly way"で行うことができます...しかし、いくつかの前処理は、そのような場合にもその日を節約します。

ポイントは:は、 Javaプリプロセッサの有効なケースです。 )

+0

IntelliJ 10.0.1用のNokiaプラグインはありません。大きな市場がある場合、おそらく誰かがそれを書く時です。 iPhone、Android、Windows Mobileが刻々と現れている今、その市場に何が起こっているのだろうか?私はいくつかのデータを確認する必要があります。 – duffymo

+0

@duffymo:IntelliJ IDEAのNokiaプラグインは不要です。ノキアはそれらを(ノキアの開発者用プラットフォームとも呼ばれる)持っています.JDKとしてインポートする必要があります: – barmaley

0

Javaプログラマは、通常、C/C++の方法が行うpreprocessersを使用しないでください。注釈、コード生成などのような他のテクニックやシステムも開発されています。あなたが解決しようとしている問題を知らせてくれたら、誰かがJavaのやさしい方法で助けてくれるでしょう。

編集:私は(これは本当にコメントの答えが、より多くのではないので、答えは、コメントのために長すぎる)コンセンサスはあなたがIntelliJのプラグイン

+0

同意しない... Javaは前処理をサポートしていませんが、IDEは... http://java.sun.com/docs/white/langenv/Simple.doc2.html – barmaley

+0

サポートしています。しかし、Javaの文化はそのようなCismに眉をひそめることです。私はそういうものが存在するのに驚くべきではありませんが、Javaでコーディングする私のすべての年において、私がそれらを聞いたのはこれが初めてです。それらを使用しているJava開発者はほとんどいません。 – sblundy

+0

@barmaley興味深い:NetBeans IDEには、前処理が理由のための日からこのドキュメントをチェックアウト – sblundy

3

さまざまなバージョンのlibについて異なるartifactsを設定して、コードを再構成してサブクラスでバージョン固有のコードを分離することができます/関連するアーティファクトにのみ含まれるコンポーネント。これは、特に既存のプロジェクトでは実用的ではないかもしれませんが、プラグインを書くよりも厄介です。 Mavenはクラシファイアを介して同様の機能を持っています。

+0

yeahh - 少なくとも建設的な方法 - 他人のように完全に不一致ではありません。私はそのようなアプローチについて聞いたことがありますが、私の意見ではそれはあまりにも学問的で実用的な使用法からは遠いです。とにかく私の "+" – barmaley

+0

@barmaley - 私は同意する傾向があります。彼らはちょうど最後のバージョンで追加され、まだ磨く必要があります。 – sblundy

関連する問題