簡體   English   中英

在Linux上設置Closure Compiler的好方法是什么? 或者,Java .jar應該放在Linux的什么地方?

[英]What's a good way to set up Closure Compiler on Linux? Or, where should Java .jar's live on a Linux?

我想建立一個過程,在該過程中,我可以為我的Web應用程序生成最小化和優化的JS,這是使用git將更新的代碼推送到Web服務器的過程的一部分。

運行起來非常簡單: java -jar ./compiler.jar script.js

當然,如果我有十個項目,則不需要十個compiler.jar

如果我把它貼在這里: /usr/local/lib/compiler.jar我的電話看起來很愚蠢:

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

它將使更多的意義傾倒在~像我與其他一切沒有一個地方去做。 感覺很草率。

是否有一些目錄可以放入我的jar,以便可以更輕松地運行它們,而不必為每個要使用的jar設置(符號鏈接)shell腳本(或者可能更好的shell命令別名)?

例如,是否應該有一個系統將我的jar放在一個全局指定的java lib目錄中,然后java closure script.js其稱為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

我的回答更多是建議您不要重新發明輪子,希望可以避免出現問題,但您沒有參加-但是,因為您已經在自己的評論中建議將罐子放入其中可能會很好每個項目。 :-)

我建議將jar放在每個項目中,並使其獨立或更好:在每個項目中運行安裝腳本,該腳本將從遠程位置獲取jar。

您可以手動編寫設置腳本,也可以進一步使用任務運行程序來創建自己的構建工具鏈,然后將其在多個項目中重復使用。

我們將項目結構轉換為Grunt任務( http://gruntjs.com )。Grunt包含一個closure-compiler插件(以及更多插件,例如sass )。 每個項目都包含一個Grunt配置文件,該文件指定了可以在給定項目上調用的所有任務,例如測試,構建。 因此,您必須在計算機上安裝一次Grunt,Grunt將接管給定項目的所有任務,並負責下載closure-compiler.jar和調用closure-compiler。

因此,即使您現在想想:“我只需要閉包編譯器”,最終您可能需要另一個工具B並開始對工具B bash腳本編寫。 我建議您花更多的時間在學習上,例如Grunt,並利用社區的工作。

旁注:在使用Grunt之前,我與另一個任務運行器Gradlehttp://www.gradle.org )一起建立了構建工具鏈,該工具在Java項目中很流行,這是受閉包-compiler.jar的影響本身就是一個Java項目。 這工作得很好,但我最終注意到,對Grunt的支持比基於Web項目的支持多得多。 我相信正確的工具可以完成正確的工作,因此得出的結論是:對於Javascript-Projects使用Grunt,對於Java / JVM使用Gradle。

在Linux上設置Closure Compiler的好方法是什么?

這取決於您的Linux發行版。 通常,它已在軟件包存儲庫中提供。

例如,對於CentOS 7,您將運行:

yum install https://extras.getpagespeed.com/release-el7-latest.rpm
yum install closure-compiler

然后只需通過closure-compiler <arguments>調用它

如果您不使用打包好的發行版,請參閱下一個答案。

或者,Java .jar應該放在Linux的什么地方?

.jar文件的系統軟件包通常進入/usr/share/java/ (至少在基於RedHat的系統中如此)。 此外,根據FHS標准,手動安裝或下載的軟件應進入/usr/local

從上面的內容中,您可以確定/usr/local/share/java/應該是放置手動下載的.jar文件的適當位置,如果您希望它們可供多個用戶/項目訪問。

如果直接使用java命令,則必須提供所涉及的jar的路徑。 將jar放在一個地方並創建一個處理調用和jar路徑的shell腳本可能更容易。

我使用一個別名 ,我認為它比將shell腳本放置在某個地方可以實現大致相同的效果要有效得多。

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

正在使用:

closure --js i.js --js_output_file i.min.js

我還將在每個項目中都使用它。 這是為了使它們獨立。 這是我這樣做的代碼:

cd /path/to/your/project
sudo apt-get install -y default-jre
wget "https://dl.google.com/closure-compiler/compiler-latest.tar.gz"
tar -xf compiler-latest.tar.gz
rm compiler-latest.tar.gz README.md COPYING
mv closure-compiler* closure-compiler.jar # rename for easier use

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM