靈感來自前段時間和我一個朋友吃飯,說道他們公司當前組件化開發流程。android
一、Nexus安裝配置流程windows
實現該組件化開發須要Nexus工具,下載地址能夠以下:瀏覽器
https://www.sonatype.com/download-oss-sonatypeapp
下載對應的版本的Nexus,這裏我下載的以下圖maven
下載以後直接解壓而後到指定的目錄下啓動該Nexus倉庫便可,個人相對目錄以下:(僅供參考)ide
nexus-2.14.5-02-bundle\nexus-2.14.5-02\bin\jsw\windows-x86-64
在該目錄下執行以下start-nexus.bat直接啓動倉庫便可。工具
而後在瀏覽器訪問http://localhost:8081/nexus進入到以下圖:組件化
歡迎界面如上圖,能夠點擊右上角login按鈕,默認Nexus的帳號和密碼分別是admin admin123,輸入帳號密碼完成登陸以下圖:測試
點擊add->HostedRepositories,而後以下圖:gradle
這裏須要填寫Repository ID和Repository Name,而後就是Deployment Policy這裏儘可能選擇Allow Redeploy,不然同版本不容許從新(覆蓋)發佈,最後點擊保存便可。
二、Android Stuido項目建立AAR文件而且提交到倉庫
實現流程以下:
第一步建立Android Module
New -> Android Module -> Android Library
第二步配置Module的build.gradle
一、在該文件最頂部添加以下:
apply plugin: 'maven'
二、文件中添加以下:
uploadArchives { configuration = configurations.archives repositories.mavenDeployer { /*遠程倉庫的地址,貌似有具體ip的基本上都是建在局域網的倉庫*/ repository(url: "http://localhost:8081/nexus/content/repositories/android/") {/*倉庫地址*/ authentication(userName: "admin",/*用戶名*/ password: "admin123")/*密碼*/ } pom.project { name 'testvideo-library' /*項目的名稱*/ packaging 'aar' /*要提交文件的類型*/ description '測試視頻組件定義' /*描述*/ url "http://localhost:8081/nexus/content/repositories/android/"/*倉庫地址*/ groupId "com.test.testvideo" /*註冊sonatype帳號時有填,這裏是域名反轉+項目名*/ artifactId "video" version '1.0.0' } } }
第三步:添加代碼到倉庫指定位置
實現方式一:命令行方式
在項目的根目錄下執行以下命令:gradlew uploadArchives
實現方式二:工具
打開項目右上角gradle面板
點擊以下圖所示指定module下須要添加的aar文件到倉庫
批註:這裏說明下aar文件生成路徑build/outputs/aar,這裏建議每次修改提交前執行Rebuild Project。
三、主Moudle引用AAR文件
主項目根build.gradle文件添加本地倉庫地址:
repositories{ mavenCentral() maven { url "http://localhost:8081/nexus/content/repositories/android/" } }
主項目build.gradle文件頂部添加以下:
apply plugin: 'maven'
而後在dependencies下添加引用
compile 'com.test.testvideo:video:1.0.0@aar'
說明:AAR文件是Android本身特有的包,包含src目錄文件和res目錄文件,這裏會涉及合併res文件(包含清單文件和drawable文件等,因此對明明規範就有了更高一步的要求) 如上全部步驟實現則能夠直接在主Module中直接調用對應的AAR文件裏的Activity文件。這也就是實現了對應的組件化開發。囧....