3

更新されたコードを git を使用して Web サーバーにプッシュするプロセスの一環として、Web アプリケーション用に縮小および最適化された JS を生成できるプロセスをセットアップしたいと考えています。

それを実行するのは非常に簡単です:java -jar ./compiler.jar script.js

もちろん、10 個compiler.jarのプロジェクトがある場合、10 個は必要ありません。

ここに貼り付けると/usr/local/lib/compiler.jar、私の呼び出しはばかげているように見えます:

java -jar /usr/local/lib/compiler.jar script.js

~行く場所がない他のすべてのものと同じように、それを捨てる方が理にかなっています. ずさんな感じです。

jar ごとにシェル スクリプト (またはシェル コマンド エイリアス) を設定 (シンボリック リンク) するのではなく、より簡単に実行できるように、jar を貼り付けることができるディレクトリはありますか?

たとえば、グローバルに指定された java lib ディレクトリに自分の jar を置き、その時点でjava closure script.js.

編集:ここで見つけたものを入れてjre/lib/extみましたが、うまくいきませんでした:

$ find /usr/lib | grep jre/lib/ext                         
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.25.x86_64/jre/lib/ext
.... bunch of other jar files here
$ cp ~/compiler.jar /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.25.x86_64/jre/lib/ext
$ java -jar compiler.jar script.js
Error: Unable to access jarfile compiler.jar
4

5 に答える 5

1

私の答えは、車輪を再発明しないという提案であり、問​​題からあなたを救うことを願っています.あなたは走りませんでした.すべてのプロジェクト。:-)

すべてのプロジェクトに jar を配置し、自己完結型またはそれ以上にすることをお勧めします。すべてのプロジェクトでセットアップ スクリプトを実行し、リモートの場所から jar をフェッチします。

セットアップ スクリプトを手動でスクリプト化するか、さらに一歩進んでタスク ランナーを使用して、複数のプロジェクトで再利用できる独自のビルド ツールチェーンを作成することができます。

プロジェクト構造をGruntタスク ( http://gruntjs.com ) に移行しました。Grunt にはクロージャ コンパイラ プラグイン (および など、さらに多くのプラグイン) が含まれていますsass。各プロジェクトには Grunt 構成ファイルが含まれており、特定のプロジェクトで呼び出すことができるすべてのタスク (テスト、ビルドなど) を指定します。したがって、マシンに Grunt を一度インストールする必要があります。Grunt は、特定のプロジェクトのすべてのタスクを取得し、closure-compiler.jar をダウンロードして、closure-compiler を呼び出します。

したがって、「クロージャーコンパイラーだけが必要だ」と今考えている場合でも、最終的には別のツールが必要にBなり、 tool の bash スクリプトを開始する可能性がありますB。Grunt などの学習により多くの時間を費やし、コミュニティの作業を利用することをお勧めします。

補足: 使用する前にGrunt、build-toolchain を別のタスクランナーGradle( http://www.gradle.org ) でセットアップしました。これはプロジェクトで人気がありJava、closure-compiler.jar 自体がジャバプロジェクト。これは非常にうまく機能しましたが、Gradle よりも Web プロジェクトベースの Grunt のサポートの方が多いことに最終的に気付きました。適切な仕事には適切なツールがあると信じているので、私の結論は次のとおりです。Javascript プロジェクトには Grunt を、Java/JVM には Gradle を使用してください。

于 2013-08-03T11:58:17.410 に答える
0

java コマンドを直接使用する場合は、問題の jar へのパスを指定する必要があります。おそらく、jar を 1 か所に配置して、呼び出しと jar パスを処理するシェル スクリプトを作成する方が簡単です。

于 2013-08-03T04:18:30.907 に答える
0

私は、シェルスクリプトをどこかに置いてほぼ同じことを達成するよりもはるかに効率的だと思うエイリアスを使用しています。

alias closure='java -jar /opt/closure-compiler/compiler.jar'

使用中で:

closure --js i.js --js_output_file i.min.js
于 2014-02-19T18:55:51.783 に答える