使用Jitpack釋出開源Java庫

abstractcyj發表於2022-02-23

原文:使用Jitpack釋出開源Java庫 | Stars-One的雜貨小窩

很久之前也寫過一篇使用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有些類似,這裡就不過多展開

不過,官方給的示例中,明確了可以直接匯入所有所有依賴

官方例項專案

參考

相關文章