Maven(二) deploy

通過(guò)maven將項(xiàng)目管理起來(lái)之后,拉取pom文件中的依賴(lài)項(xiàng)目。估計(jì)大部分小伙伴都想過(guò)這些文件是哪里來(lái)的,怎么來(lái)編譯呢。

微服務(wù)下的相互引用

相信接觸過(guò)微服務(wù)架構(gòu)的java開(kāi)發(fā)伙伴,都對(duì)依賴(lài)其他項(xiàng)目的用法比較熟悉。往往在一個(gè)微服務(wù)中,A服務(wù)被B服務(wù)依賴(lài),在B服務(wù)的pom文件中必然會(huì)有A服務(wù)的引用配置。

未命名文件.png

微服務(wù)下的deploy

在微服務(wù)框架下服務(wù)module較少的情況下,每次編譯直接全量編譯解決引用項(xiàng)目的問(wèn)題。但是,隨著項(xiàng)目的逐漸增大,項(xiàng)目開(kāi)發(fā)人員的增加,不可避免的會(huì)出現(xiàn):代碼提交不及時(shí),接口在不知情的情況下被別人改了等其他各種情況。

對(duì)此,將我們微服務(wù)中引用的接口、類(lèi)提取為一個(gè)可單獨(dú)引用模塊是必不可少的一個(gè)步驟。在實(shí)現(xiàn)這個(gè)過(guò)程中,我們就需要將我們的代碼提交打maven服務(wù)器上。當(dāng)然,我們不可能把我們公司自己的項(xiàng)目代碼上傳到maven的公共服務(wù)器上,除了允許可以開(kāi)源的項(xiàng)目。在這里,我們還需要一個(gè)maven私服。


maven二之deploy-微服務(wù).png

在將代碼上傳到maven服務(wù)器上的操作就比較簡(jiǎn)單了,只需要執(zhí)行mvn deploy就可以了。但是在執(zhí)行之前,我們需要配置上傳的maven服務(wù)器地址。

maven私服地址配置:

distributionManagement:分發(fā)項(xiàng)目到遠(yuǎn)程倉(cāng)庫(kù)

repository:倉(cāng)庫(kù)地址

snapshotRepository : 快照倉(cāng)庫(kù)存儲(chǔ)地址

<distributionManagement>
    <repository>
        <id>test</id>
        <name>test</name>
        <url>http://test.cn/nexus/content/repositories/</url>
    </repository>
    <snapshotRepository>
        <id>snapshots</id>
        <name>snapshots</name>
        <url>http://test.cn/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

注意:大部分公司基本都有自己的maven私服,但是基本上都會(huì)限制上傳項(xiàng)目到里面去。因?yàn)殡m然有定時(shí)清理策略,但是要很合理的清理倉(cāng)庫(kù)就比較麻煩了,所以從源頭限制是最好的。

上傳源碼配置:

在項(xiàng)目上傳到私服,其他小伙伴拉取到了之后,很多小伙伴都會(huì)很奇怪為啥我代碼里面的注釋拉不到。點(diǎn)擊無(wú)數(shù)次idea里面的down resources都拉不到。其實(shí)這個(gè)時(shí)候也比較簡(jiǎn)單,只需要在·pom文件的bulid下增加一個(gè)plugin就行了。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <attach>true</attach>
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>jar-no-fork</goal>
            </goals>
        </execution>
    </executions>
</plugin>

deploy的建議-快照(SNAPSHOT)

我們?cè)赿eploy的時(shí)候,每次deploy上去的代碼,同一個(gè)版本號(hào)別人都只能拉到一次。在快速迭代的版本過(guò)程中,怎么能夠避免每次都要更改版本號(hào),并且提示對(duì)應(yīng)的開(kāi)發(fā)伙伴呢。

這個(gè)時(shí)候,我們就需要使用maven快照了。我們?cè)诎姹竞竺嬖黾?code>-SNAPSHOT,就不需要每次都更改版本號(hào),只要等到版本迭代穩(wěn)定后,更改版本上線(xiàn)即可。

<version>1.0.0-SNAPSHOT</version>

當(dāng)然,每次拉取代碼編譯的時(shí)候,就要加上-U來(lái)強(qiáng)制拉取引用的項(xiàng)目了。

如打包的時(shí)候:

mvn clean package -U

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容