安卓項目中,有時會存在通用的項目技術文件結構,和依據現實須要組織的文件結構矛盾的狀況。如Gradle插件在開發過程當中一般放在項目的buildSrc目錄下,版本穩定後再發布到Maven。但同時,在特定的需求背景下,又常常存在一些特定化的目錄層次,如將Gradle插件目錄以其餘名稱命名,甚至在其餘的文件路徑中。再如:開源庫中常常存在主工程目錄下是源碼,Demo的App並不是主工程的App,而是以二級目錄結構存在,等等。markdown
最近在看開源項目時,發現一些工程在面對此類矛盾時,採用了軟件的處理方式,感受頗有技巧性,很是實用,決定Mark下。ui
軟連接又叫符號連接,這個文件包含了另外一個文件的路徑名。能夠是任意文件或目錄,能夠連接不一樣文件系統的文件。spa
在某些需求場景下,能夠經過軟鏈,達到想要的結果。插件
軟鏈的生成方式很是簡單,簡單點能夠理解成Windows上的快捷方式,能夠直接經過以下命令造成軟鏈關係。調試
ln -s ~/original ~/symlink
複製代碼
其中,original做爲原始文件,symlin做爲新生成的軟鏈文件,能夠直接連接到原始文件中去。code
例如,上述中的Gradle插件開發中的問題,能夠直接生成一個buildSrc軟鏈:orm
ln -s ~/xxx/graldePluginDir ~/ttt/buildSrc
複製代碼
注,實際項目開發中,咱們應該使用相對路徑。不然其餘同事構建項目時會出現問題。開發
相對路徑形式的命令寫法以下:源碼
ln -s graldePluginDir buildSrc
複製代碼
能夠經過ll
直接看一下他們之間的差別: 絕對路徑形式生成的軟鏈: it
相對路徑形式生成的軟鏈:
如此,插件開發過程當中,就能夠很方便的開發調試等。
其餘相似的需求場景均可以採用此種方案。
end~