91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Gradle打依賴包失敗如何解決

發布時間:2023-04-15 15:36:03 來源:億速云 閱讀:167 作者:iii 欄目:開發技術

這篇文章主要介紹“使用Gradle打依賴包失敗如何解決”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“使用Gradle打依賴包失敗如何解決”文章能幫助大家解決問題。

    使用Gradle打依賴包失敗

    以前在使用Maven開發java web的項目中,我們通常會用多模塊來開發,而使用Maven大大簡化了多模塊的開發。

    現在Maven已經十分穩定了,而近期由于接觸Gradle,被其簡約的配置,和靈活性所吸引!用Gradle來代替Maven是一個很不錯的選擇。

    Gradle使用Maven的命令只需要引入插件即可!

    plugins {
        id 'java'
        id 'maven'
        id 'maven-publish'
    }

    如上所示,引入maven插件就可以使用 gradlew install 來代替 mvn install命令了

    我在開發時,需要開發一個springboot-start的依賴,因此,因此需要單獨起一個項目來寫該依賴

    但是在gradlew install 時 卻報錯了:

    * What went wrong:
    Execution failed for task ':install'.
    > Could not publish configuration 'archives'
       > Cannot publish artifact 'dynamic-datasource-spring-boot-starter.jar' (E:\dynamic-datasource-spring-boot-starter\build\libs\dynamic-datasource-spring-boot-starter-1.0-SNA
    PSHOT.jar) as it does not exist.

    提示找不到打好的jar包,然后去build目錄下面去找,果然沒有打好的jar包

    然后使用 gradlew install -d 查看 install命令的詳細輸出發現:

    09:18:57.865 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] > Task :jar SKIPPED

    發現 jar這個任務跳過去了。

    經過檢查后發現我的gradle依賴中添加了一個插件

    org.springframework.boot

    我把這個插件去掉后,就可以成功打包了,但是這個插件是我規范springboot的版本使用的,如果不使用這個插件,我就需要在使用的springboot的各個依賴中添加版本號

    經過測試后發現

    該插件:

    除了可以規定使用的springboot的版本外,同時還增加了名為bootRun和bootJar的gradle任務,當項目作為一個其他項目的依賴時,不應引入該插件,否則會提示打包失敗,找不到MainClass,當項目是作為一個完整的項目時,引入此依賴,那么即規定了springboot的版本,同時也可以使用 gradlew bootRun命令來運行此項目

    那么打包問題解決了,如何解決版本問題呢?gradle 如果像maven那樣引入spring-boot-starter-parent 的pom依賴呢

    使用:

    implementation platform("org.springframework.boot:spring-boot-starter-parent:2.1.8.RELEASE")

    就可以了

    如果 依賴 并不是一個單獨的項目,而是一個單獨的模塊,那么這個時候,就需要在這個單獨的模塊中去排除這個依賴

    找到父模塊對應的build.gradle 文件

    修改

    allprojects {      
     
        //    這些模塊不應用 springboot插件
        if (!name.startsWith("common") && !name.startsWith("domain")) {
            apply plugin: 'org.springframework.boot'
            apply plugin: 'io.spring.dependency-management'
        }
     
    }

    即可。

    在使用maven 時,經常會看到optional關鍵字,其表示可選依賴:

    應用場景

    應用場景:projectA 依賴projectB,  projectB 依賴projectC時 

    <dependency>
      <groupId>com.itear.projectC</groupId>
      <artifactId>projectC</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <optional>true</optional>
    </dependency>

    當projectB的<optional>true</optional>時, projectA中如果沒有顯式的引入projectC, 則projectA不依賴projectC, 即projectA可以自己選擇是否依賴projectC 

    默認<optional>的值為false, 及子項目必須依賴

    而在gradle中沒有這個關鍵字,可以使用 compileOnly 代替 implementation 來引入依賴 以達到maven optional關鍵字的效果

    Gradle不能加載依賴包的處理

    大早上的公司突然斷了一次電,來電后,我開啟機器,發現我的工程就是拉取不到本地maven上的依賴包,一下子就懵逼了。

    我檢查網絡是通的

    拉取第三方的依賴庫沒有問題

    我使用其他同事的機器進行Sync Project,OK的。

    一下子,就有點不知所措了,昨天都是好好的,斷個電就突然不行了,還以為是我Gradle文件被改過了,但事實上并沒有。

    于是想baidu下看看有沒有其他人曾經碰到過這個問題,發現并沒有什么卵用。

    仔細看了下Gradle的輸出日志,發現了一點信息,Could not load module metadata from XXX,于是我就去那個路徑下看了看,確實發現了

    C:\Users\Administrator\.gradle\caches\modules-2\metadata-2.23\descriptors\XXX

    因為是caches目錄下,所以我就刪除了XXX下面的所有文件,然后重新Sycn,就正常了。

    關于“使用Gradle打依賴包失敗如何解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    青河县| 景洪市| 仁布县| 德江县| 鄂托克前旗| 江孜县| 观塘区| 沾化县| 抚松县| 阿勒泰市| 苍南县| 赞皇县| 阳新县| 莫力| 榕江县| 克拉玛依市| 新建县| 乌什县| 霍山县| 新津县| 剑河县| 旬邑县| 泾阳县| 镇安县| 双桥区| 乐陵市| 建宁县| 宁晋县| 台北市| 浏阳市| 伊春市| 孟连| 中山市| 饶河县| 洛扎县| 新密市| 曲沃县| 儋州市| 高邑县| 岳阳县| 郎溪县|