簡體   English   中英

Maven 在構建我們自己的 custom.jar 時發布和使用第三方運行時 jar

[英]Maven publish & consume the third-party runtime jars while building our own custom.jar

我有一個 maven 項目,我們正在使用 S3 存儲庫abc-1.0.jar加載內部abc-1.0.jar以及abc-1.0.jar成為我項目的一部分所需的任何運行時依賴項,我們以.zip的形式加載並提取它作為

有趣的注意事項:當我說第三方運行時 jars 作為 zip 時,有些 jars 在構建abc-1.0.jar時可能沒有使用abc-1.0.jar

project.zip
 -- lib
    -- abc-1.0.jar
    -- runtime_jars_for_abc.jar
    -- runtime_jars_for_project.jar

有可能將abc-1.0.jar jar 交付到my-project ,運行時 zip 可能有one set of jars但對於abc-2.0.jar我需要運送another set of jars

我已經通過以 zip 的形式傳送它並在創建project.zip提取它解決了這個問題

但是,我是否可以將那些runtime.jar與我的abc-1.0.jarabc-2.0.jar一起發送或發布,以便my-project/pom.xml可以從mavenCentral()即時使用該公告還是我的內部maven-repo

編輯

我在這里找到了maven changes plugin https://maven.apache.org/plugins/maven-changes-plugin/ 這主要是要發布新的更改,但是如何為每個新構建動態使用新更改? 有什么想法嗎? 🤔

*我在想的是將abc-1.0.jar連同它的abc-1.0-pom.xml文件一起推送,該文件應該包含一些自定義范圍或依賴 jar 的邏輯分組,以便我可以指定這些custom scopesgroups消費項目使用maven copy dependencies plugin https://maven.apache.org/plugins/maven-dependency-plugin/examples/copying-project-dependencies.html唯一地復制這些 jar但不幸的是 maven 不支持custom scopes 😞

在您的項目-b 中,以-SNAPSHOT 為您的版本添加前綴,如下所示

<groupId>my.groupid</groupId>
<artifactId>my.artifactid</artifactId>
<version>0.0.1-SNAPSHOT</version>

因此,每次當您在 project-b 中進行更新時,您的 project-a 都會從 Maven 存儲庫中選擇最新的快照

如您所見,maven 通過添加時間戳來組織快照以交付最新發布

在此處輸入圖片說明

請注意,您的項目-a 絕不能進入具有快照依賴項的驗收、pprod 或生產環境!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM