中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

springboot~封裝依(yi)賴引(yin)用(yong)包jar還是pom,哪(na)種更(geng)規范

將多個(ge)第三方包封裝(zhuang)成(cheng)一(yi)個(ge)項目后(hou),如果你的目的是讓其他開發人員可以(yi)直接引用(yong)這些(xie)依賴,一(yi)般來說有兩種常見的方式:

  1. 打成JAR包(bao)(bao):將封裝好的(de)(de)(de)項目(mu)編譯打包(bao)(bao)成JAR文(wen)件,其他開發人員(yuan)可以將這個JAR文(wen)件添加到他們的(de)(de)(de)項目(mu)中,并在項目(mu)的(de)(de)(de)構(gou)建工具(比(bi)如Maven)中配置該JAR作為依賴。這樣做的(de)(de)(de)好處是(shi)簡單(dan)直接,其他開發人員(yuan)只需引(yin)入JAR包(bao)(bao)即(ji)可使用你(ni)封裝的(de)(de)(de)功能。

  2. 打成POM包:將封裝(zhuang)(zhuang)好的項目發布到倉庫中,并提供一個POM文件(jian),其(qi)他開(kai)發人員可以(yi)通過在他們(men)的項目中引入(ru)這(zhe)個POM文件(jian)來獲取(qu)你封裝(zhuang)(zhuang)的依(yi)賴(lai)(lai)(lai)。這(zhe)種方式更符合(he)Maven的依(yi)賴(lai)(lai)(lai)管(guan)理機制,能夠更好地(di)管(guan)理和控(kong)制依(yi)賴(lai)(lai)(lai)版本(ben)、傳遞性依(yi)賴(lai)(lai)(lai)等。

綜合考慮(lv),如果你的(de)封裝項目(mu)只包含依賴(lai)的(de)JAR文件,并(bing)(bing)沒有其他需要特別配置的(de)內容(rong),那么直接打成(cheng)JAR包可能更為簡單;如果你希望(wang)提供更加靈活(huo)和規范的(de)依賴(lai)管(guan)理方式,可以考慮(lv)打成(cheng)POM包并(bing)(bing)發布(bu)到倉庫中。

一,二,三方包

在軟件(jian)開發(fa)中,通常我們(men)將依賴的(de)包分為三方包(Third-party package)、二方包(Second-party package)和(he)一方包(First-party package)。

  • 一方包(First-party package):指的(de)是由自(zi)己或者所在(zai)團隊開發的(de)包,也可以理(li)解為(wei)自(zi)己項目內(nei)部的(de)代碼和庫。

  • 二方(fang)包(bao)(Second-party package):通常指的是公(gong)司(si)內部(bu)共(gong)(gong)享的、被(bei)多個團隊或項目使用(yong)的包(bao),也可以(yi)稱為內部(bu)共(gong)(gong)享庫(ku)(ku)。這些包(bao)不是公(gong)開發布到(dao)外部(bu)倉庫(ku)(ku)的,而是在組(zu)織(zhi)內部(bu)進行管理和分享。

  • 三方包(bao)(Third-party package):指(zhi)的(de)(de)是外部開(kai)發(fa)(fa)者或組織開(kai)發(fa)(fa)并發(fa)(fa)布的(de)(de)可供公開(kai)訪問和(he)使(shi)用的(de)(de)包(bao),比如常(chang)見的(de)(de)Maven中(zhong)央倉庫、JCenter等。開(kai)發(fa)(fa)人員可以通過引入(ru)這些第三方包(bao)來實(shi)現功(gong)能擴(kuo)展或依賴管理(li)。

根據(ju)以上定義,如(ru)果你(ni)(ni)封裝的項目(mu)中包含的是第(di)三方(fang)包(即外部(bu)(bu)開發(fa)者或組織開發(fa)的包),那(nei)么你(ni)(ni)可以選擇將其(qi)(qi)打成JAR包或POM包提供(gong)給其(qi)(qi)他開發(fa)人員使用;如(ru)果封裝的是公(gong)司內部(bu)(bu)共享的包(二(er)方(fang)包),則可以考慮(lv)將其(qi)(qi)作為(wei)內部(bu)(bu)庫(ku)進行管理和分(fen)享。

希望(wang)以上解釋對你有(you)所幫助,如果還有(you)其他問題(ti),請隨時告訴我(wo)!

pom更規范

當我們希望(wang)將hutool,lombok,jax-rs等包(bao)(bao),如(ru)果不希望(wang)其它(ta)開發人員再(zai)引用(yong)這(zhe)些包(bao)(bao),而通過一個二方(fang)包(bao)(bao)引用(yong)它(ta)們,可以(yi)將這(zhe)些三方(fang)包(bao)(bao)寫到pom里,例如(ru)

然后,開發人(ren)員在自(zi)己項目中,可(ke)以直接通過type為pom的(de)形式,引(yin)用(yong)它們,這樣作的(de)好處就(jiu)是,二方依賴包,只負(fu)責(ze)引(yin)用(yong)相同依賴,不與(yu)代碼耦合(he),例如(ru):

 <dependency>
      <groupId>com.lind</groupId>
      <artifactId>test-bom</artifactId>
      <version>1.0.0</version>
      <type>pom</type>
  </dependency>

如果你要使用的二方包里的三方包,只是某些需要,也可以在dependencyManagement中進行導入,通過按需進行真實的引用即可,這時再引用時,則不需要標識version屬性了,例如org.springframework.bootspring-boot-dependencies就是做這事的(de),幫(bang)助spring管理相關依賴包的(de)版本。

  • pom二方包項目
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="//www.w3.org/2001/XMLSchema-instance"
         xmlns="//maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="//maven.apache.org/POM/4.0.0 //maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.lind</groupId>
    <artifactId>test-bom</artifactId>
    <version>1.0.0</version>
   <packaging>pom</packaging>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencyManagement>
        <dependencies>
            <!-- 三方包包裹 -->
            <dependency>
                <groupId>org.jboss.resteasy</groupId>
                <artifactId>resteasy-jaxrs</artifactId>
                <version>4.0.0.Beta5</version>
            </dependency>
            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-all</artifactId>
                <version>5.8.27</version>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.32</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <!-- 三方包包裹 -->
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jaxrs</artifactId>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>
</project>

開發人員在真實(shi)項目中,按需引用(yong)

    <dependencyManagement>
        <dependencies>
            <!--spring boot 版本-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot-dependencies.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- 二方包 -->
            <dependency>
                <groupId>com.lind</groupId>
                <artifactId>test-bom</artifactId>
                <version>1.0.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
  <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
        </dependency>
    </dependencies>

引(yin)用后(hou),如圖所(suo)示,只有兩個包在依賴列表中,做到了(le)按(an)需引(yin)用

posted @ 2024-05-28 14:56  張占嶺  閱讀(1158)  評論(2)    收藏  舉報