2

Windows 7 で Eclipse で Java を使用しており、ネットワーク上の別の (ubuntu) マシンで実行されるサーバー プログラムを構築しようとしています。

ビルドされたクラス ファイルを外部の場所に保存するように Eclipse を取得するにはどうすればよいですか (ドライブがマップされているか、ssh/sftp/その他の場所にある可能性もあります)。

そのマシンに git リポジトリを作成したので、クラス ファイルはそこに保存されますが、使用している (ビルド パス上にある) 外部ライブラリはリポジトリの一部として保存されません。理想的には、ビルドされたクラスとライブラリを別のディレクトリに自動的にコピーするようにしたいです(さらに理想的には、「実行」をクリックするとプログラムを自動的に実行/強制終了しますが、それは少し多すぎるかもしれません楽観的)。

Eclipse でインストールされていると思われる ant でこれを実行できると思いますが、それを実現する方法がわかりません。

4

1 に答える 1

3

あなたはjarファイルについて言及しましたが、それらは実際には依存関係です。これらの jar ファイルをリポジトリに含めたくない場合は、Ivy などの依存関係管理システムを検討するか、Maven に切り替えることをお勧めします。

または、Ant のビルド「スクリプト」を使用して依存関係をいつでもコピーできます (実際には「スクリプト」ではなく XML ですが)。

ビルドされたクラス ファイルを外部の場所に保存するように Eclipse を取得するにはどうすればよいですか (ドライブがマップされているか、ssh/sftp/その他の場所にある可能性もあります)。

「外部に保存する方法」を解決する方法が思い浮かびません。<scp>ただし、タスク (ssh ベース) またはタスクを使用してターゲット<ftp>を作成し、標準のビルドを実行した後にファイルをコピーすることができます。

理想的には、ビルドされたクラスとライブラリを別のディレクトリに自動的にコピーしたいと思います。

Eclipse には Ant のサポートが組み込まれています。私は Eclipse を使用していませんが、Netbeans を使用しています。Netbeans では、プロジェクトは Netbeans によって生成された Ant ビルド ファイルを使用して実際にビルドされます。また、ビルド ファイルをカスタマイズし、独自のターゲットを追加して、IDE 内で独自のターゲットを実行できます。

たとえば、buildターゲット、deployターゲット、runターゲットがあります。前者は Eclipse によって生成され、気にする必要はありませんが、後者の 2 つは自分で作成したものです。別のターゲット、たとえば を記述しall、 を使用<antcall>して上記の 3 つのターゲットを次々に実行します。そして、Eclipse では、alltarget を直接実行して、Ant によって処理されるすべてのものを取得できます。

「実行」をクリックすると、プログラムを自動的に実行/強制終了することがさらに理想的ですが、それは少し楽観的すぎるかもしれません。

ターゲット マシンは Linux マシンなので、apt-get を使用して SSH サーバーを簡単にインストールできます。Ant ビルド ファイルに 2 つのターゲットを記述します。1 つはrunで、もう 1 つは ですkill

runターゲット内で、<sshexec>アプリを実行するために使用できます。注意が必要な唯一のことは、そのマシンで定義された環境変数が ssh セッションで使用できない可能性があることです。しかし、それは単なる構成の問題です。少なくとも変数を に入れることはできますが、/etc/environmentそれはベスト プラクティスではありません。

ターゲットはkillもう少し複雑かもしれません。ただし、私の意見ではstartup.sh、アプリを開始する a を記述できる場合は、いつでも a を記述してアプリケーションstop.shを閉じることができます (Tomcat の catalina.sh を見てください)。

また、killEclipse 内でターゲットを呼び出すこともできます。

于 2012-05-03T02:40:08.533 に答える