2011-06-30 5 views
0

私たちは開発のためにWindows、linux、solarisを使用しています。現在、Windowsでは、Windowsシェルとバッチ(.BAT)スクリプトを使用してビルド関連のスクリプトを実行しています。バージョン管理ツールとしてSubversionを使用しています。Java開発のためにcygwinを使っているのは何ですか?

Windows、Linux、およびSolaris上で同じように動作するように、bashスクリプトで標準化したいと考えています。 Windows開発環境をCMD.EXEからcygwinに移行したい場合、私は何が期待できますか?

また、現在Antを使用していますが、すぐにmavenに移行します。 eclipseは開発環境です。

私たちは、マルチスレッドサーバーを開発しています。この製品は、solarisまたはlinux(Windowsではなく)でのみ実稼働しています。

はCygwinがUnixのにかなり忠実に翻訳しなければならない、限り、あなたのcygwinのスクリプトが任意のOS特定のプログラムを必要としないよう、

+0

すべてのスクリプトを処理するのに、gradleのようなツールを使用しないのはなぜですか?プラットフォームに依存しません。 –

答えて

2

、ありがとうございました。より難しい部分は、スクリプトをインストールするだけでなく、実行する必要があると仮定して、ユーザー作成やディレクトリのアクセス許可などのものになります。

あなたの最大の問題はおそらくディレクトリになることでしょう。 /セパレータすべてのスクリプト(bashのやANT)で とJavaでを使用して上の

  1. 標準化、それはあなたの人生がずっと楽になります。 Windows上のJava (ANTを含む)は、 のようなものを正しくスマートに解釈して、C:/Program Files/myprogramのようなものを正しく解析します。
  2. が可能な場合は、ディレクトリ名にスペースを入れないでください。
  3. スクリプトでC:/の代わりにcygwin /cygdrive/c の表記を使用してください。

Eclipseでは、すべてのソースでUTF-8とUnixの改行を標準化します。 Preferences - > General - > Workspace、Preferences - > Web - >(CSS | HTML | JSPファイル)、およびPreferences - > XML - > XMLFilesを参照してください。

最後に、Cygwinでスクリプトを実行する方法を説明します。 bash.exeを使ってスクリプトを呼び出すバッチファイルを作成するか、パスにcygwinを置き、直接bashを実行することができます。

2

私はこれを一回行い、以下に説明するいくつかの問題に遭遇しました。すべての環境宣言とツールパスをサニティチェックで1つのファイルに分割し、シンボリックリンクを賢明に使用する場合は、両方の環境で1つのビルドを維持できる必要があります。

Windowsは、あなたのスクリプトがPATHとCLASSPATHおよびWindows環境から継承された他の環境変数を使用する場合は、想定したスクリプトは、彼らが/分割され:上のパスに参加することができます代わりに:

のパス区切りとして;を使用しています混乱するだろう。

同様に、セミコロンを含むパスは混乱します。とにかくセミコロンはbashの特殊文字なので、これはほとんどスクリプトではありませんが、デバッグの際には心の中で覚えておくと良いでしょう。

作業のシンボリックリンクの種類

私はシンボリックリンクのツリーを構築見てきたいくつかのビルドシステム。 cygwin上のsymlinkはcygwin用にコンパイルされたツールでうまく動作しますが、javaプログラムへのシンボリックリンクを渡して自動的に逆参照することを期待するとおそらく驚くでしょう。

慎重に書かれたJavaプログラムがあるという問題を回避できる単一のルートディレクトリはありませんノーシングル/とバイナリコンパイル/フェイク/cygdrive/ディレクトリと偽物/がありますので、対処することができますcygwinのにバンドル他のツールはそうではないかもしれません。

ビルドスクリプトは/から外れてはいけませんが、これは私にとって本当の問題ではありませんが、別の混乱の原因と言えます。

3

シェルスクリプトやバッチファイルを使用しない方が簡単です。 Mavenはあなたがスクリプトに入れるすべてのことを行うことができるはずです。それはクロスプラットフォームです。

関連する問題