很久之前也寫過一篇使用Jitpack釋出Android開源庫的文章,詳見Android開發——釋出第三方庫到JitPack上 - Stars-one - 部落格園
近來因為工作原因,又重新整理總結一些使用Jitpack的相關使用技巧,由於現在Java常用的構建工具為Gradle和Maven,所以準備分為兩大部分講解下這兩個構建工具如何釋出Jitpack的開源庫
gradle
gradle主要講解以Android專案為主,如果是普通的Java專案使用了gradle進行了依賴管理,那麼流程是一樣的,按照步驟來即可
釋出流程
1.建立module
先是建立一個module,在裡面實現你自己的相關程式碼
輸入你自己想要的module名和包名,module名保留那兩個省略號(改後面的名字即可)
我這裡則是建立了一個update的module作為示例,如下圖所示:
然後就可以在裡面寫自己的程式碼了(當然,我這裡是Android的專案,可以在裡面寫Android的頁面等程式碼),和平常開發一樣
2.Gradle外掛設定
預設各位做完了自己的開發工作,為了演示,我這裡簡單地寫了個測試類,用來彈窗
首先,在專案的根gradle設定中增加以下程式碼(其實就是個打包外掛):
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
在module中的gradle檔案增加下面程式碼:
id 'com.github.dcendents.android-maven'
//這裡是我自己的github賬戶,需要改成你自己的
group = 'com.github.stars-one'
3.專案上傳github
這裡不多說了,預設各位都懂用github了
4.github建立relase版本
5.釋出開源庫
訪問jitpack的官網https://jitpack.io/,輸入我們開源庫的名字,找到我們的開源庫,選擇get it
即可釋出版本
釋出的版本,需要等待一段時間(最長要15分鐘),由Jitpack伺服器進行編譯的操作,之後看到狀態
6.使用
之後再gradle檔案新增倉庫源和依賴即可使用,可以貼心一點把此引用技巧補充到專案的readme.md
檔案中,這樣便大功告成!
關於多模組moudle
上面演示只是試了一個專案中存在單個module的情況,但是有時候我們一個專案可能分了幾個module,這幾個module之間有一個是必須的,而其他則是可選的,你們這個時候應該如何操作呢?
答案很簡單,和上述的操作是一樣的
但是之後,在Jitpack釋出成功後,你得手動去看下log日誌,來確定版本號
檢視log直接翻到末尾處,可以檢視到module
之後引用就不用多說了吧
implementation 'com.github.stars-one.android-component-libray:update:0.2'
implementation 'com.github.stars-one.android-component-libray:webviewBase:0.2'
PS:這裡需要注意,有多個module後,不要自以為之前那種方式是一次性引入全部依賴的,如下所示
//這樣依賴,專案中不會報錯,但是無法使用具體的類的(即引用無效)
implementation 'com.github.stars-one.android-component-libray:0.2'
maven
上面主要是講解的了Gradle專案,再來補充下Maven專案
Maven相對於Gradle來說,就比較簡單了,只要你新建的是一個maven專案,上傳到github之後,按照上述的操作進行釋出即可
但是,為了方便使用,我們需要配置下只pom.xml,設定主要為了可以看註釋文件和原始碼,
pom.xml配置如下:主要是配置了下外掛即可
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration> <!-- Compile java 7 compatible bytecode -->
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin> <!-- Create sources.jar -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
需要注意的是:最後使用Jitpack釋出的時候,包名是com.github.stars-one,不會使用在pom.xml中定義的包名和版本號,如下面兩個截圖可以說明:
關於多模組module
多模組的話,其實和單module有些類似,這裡就不過多展開
不過,官方給的示例中,明確了可以直接匯入所有所有依賴
官方例項專案
- 單module jitpack/maven-simple: Example Maven project demonstrating the use of
- 多module jitpack/maven-modular: Example multi-module Maven project