一直對${niagara_home}/lib/devkit.properties文件的“javac.classpath”預定義變量不清楚,這次有時間好好研究了一番。
還是在該目錄下,有一個build.jar文件,看來它應該是負責具體的編譯了,反編譯之。有看點的是3個類:Main, Env和JarCommand。
Main裏調用了initEnv,因爲是靜態函數的原因,沒有顯示擁有類,猜測是Env。
initEnv初始化各種環境變量,調用buildEditions完成針對不同edition的classpath的設定,可以在buid的時候加上參數-v,查看輸出
但是javac.classpath還是沒有看到,看來應該是在編譯時了,通過查看輸出
Java Compile [com.cat.redis]
D:\Program Files\Java\jdk1.8.0_111\bin\javac.exe -target 1.5 -source 1.5 -classpath "D:\Program Files\Niag
有這樣一個靜態字符串“Java Compile”,於是在JarCommand中查找,找到關鍵函數compilePackage
devkit.properties中的預定義變量都有了。
PS:如果在引用第三方庫(放在ext文件夾下)並開啓-v後看到如下的warning,不需要擔心,它是niagara在對BClass類型(BRedis)做驗證,能否運行還是要實際測試(本例中可以)。如果你把引用的第三方類放在非BClass中,則該warning不再出現。