亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

關(guān)于maven工程多模塊、項目打包問題

 更新時間:2025年03月24日 09:20:52   作者:seeutet  
這篇文章主要介紹了關(guān)于maven工程多模塊、項目打包問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

1、在同一父工程下的情況

(1)找到主類,主類就是你要運行那個作為啟動類就是主類,就在主類的pom里加上如下配置

  <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
            # 下面幾行不重要,重要的是上面2行
                <includeSystemScope>true</includeSystemScope>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
            </plugin>
        </plugins>
    </build>

(2)這個主類你依賴了其它模塊

   <dependency>
            <groupId>com.cdyx</groupId>
            <artifactId>medica-auth</artifactId>
            <version>1.0.0</version>
        </dependency>

那么子模塊的,這個medica-auth模塊的pom的build啥也不加,因為spring-boot-maven-plugin的原理就是打成可運行jar包,

可運行jar包就是如圖這樣的,帶BOOT-INF。注意這種文件要是你的子模塊也打成了BOOT,那么主類啟動是掃描不到的,

因為springboot是掃描的com.什么什么的,和你配置的包掃描是沖突的

最后,以此類推,有多少子模塊就這樣設(shè)置,最后package就行了

2、不在同一父工程下的情況

(就是分開的2個項目,2個有父工程的,坑就是這種一個項目打包另外一項目,另外一項目的包都是帶BOO-INF的),當(dāng)你想這個工程引入另外父工程下的子模塊時。

  • 第一個項目

  • 第二個項目

當(dāng)你第2個項目想依賴第1個項目的子模塊項目時

打出來的包是這樣的

# 上面這是個大坑,因為你第二個項目跑起來,他是掃描不到這個子模塊的bean的

解決辦法

(1)去第1個 項目的子模塊的pom里加這個, true意思是打成class,不打成BOO-INF

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>

(2)把這個包單獨打出來放在你要跑的第2個項目的的資源里路徑里

(3)在對第2個項目進行打包時,把這個通過系統(tǒng)路徑方式導(dǎo)入進來,在pom里加

    <dependency>
            <groupId>com.XXX</groupId>
            <artifactId>XXXXX</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/resources/lib/medica-auth-1.0.0.jar</systemPath>
        </dependency>

這樣,再 次打包之后項目是這樣的

其實意思就是你要想辦法把包路徑搞成com.xx.xxx,同級的。假如這個XXXXX的jar包又依賴了他自己父工程下的其它自己開發(fā)的坐標(biāo)(沒事,把其它2個打成依賴和它放這同一級目錄即可)

補充

還有一點就是,在maven中,假如A依賴B, B依賴C, A項目直接依賴B的坐標(biāo),打包生成的A包,那么A項目會導(dǎo)2次C,假如C中有注入Bean,就容易發(fā)生循環(huán)依賴或者依賴沖突,因為注入了不止一個實例。

可以用下面的方式在A的pom里排一次C的依賴,那么在A的lib里就不會再有C,而只讓B里有C,但是這種只限于C是單純的沒有注入bean的情況,假如有注入bean的注解,放B里去了,那么A是掃不到C的,一般不會套這種2層結(jié)構(gòu),只是今天遇到了。

一般還是項目的父工程和子模塊不要搞相互依賴的情況,直接寫一起不好嗎?!!每個子模塊作為單獨功能單獨的服務(wù)才符合微服務(wù)的思想

#排除依賴
   <dependency>
            <groupId>com.cdyx</groupId>
            <artifactId>medica-auth</artifactId>
            <version>1.0.0</version>
            <exclusions>
                <exclusion>
                    <groupId>com.cdyx</groupId>
                    <artifactId>medica-security</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python學(xué)習(xí)之書寫格式及變量命名

    Python學(xué)習(xí)之書寫格式及變量命名

    這篇文章我們給大家總結(jié)了關(guān)于Python書寫格式及變量命名,小編覺得這篇文章寫的還不錯,有興趣的朋友跟著參考學(xué)習(xí)下,希望能夠給你帶來幫助
    2021-10-10
  • YGC前后新生代是否變大分析詳解

    YGC前后新生代是否變大分析詳解

    要解釋這個問題,我們先要弄清楚YGC的過程,parNew是新生代的gc算法,簡單來說從gc roots開始掃描對象,當(dāng)掃到一個只要是屬于新生代的對象就將其挪到to space,但是老的對象還不會做釋放,直到gc完成之后再看是否釋放老的對象
    2022-01-01
  • Java多線程中的單例模式兩種實現(xiàn)方式

    Java多線程中的單例模式兩種實現(xiàn)方式

    這篇文章主要介紹了Java多線程中的單例模式兩種實現(xiàn)方式的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Java繼承方法重寫實現(xiàn)原理及解析

    Java繼承方法重寫實現(xiàn)原理及解析

    這篇文章主要介紹了Java繼承方法重寫實現(xiàn)原理及解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Java的@Repeatable注解使用詳細解析

    Java的@Repeatable注解使用詳細解析

    這篇文章主要介紹了Java的@Repeatable注解使用詳細解析,java8新增了注解@Repeatable,在hibernate-validator的源碼注解如@MAX、@NotNull等中,有@Repeatable注解的使用,需要的朋友可以參考下
    2024-02-02
  • SpringBoot編譯target目錄下沒有resource下的文件踩坑記錄

    SpringBoot編譯target目錄下沒有resource下的文件踩坑記錄

    這篇文章主要介紹了SpringBoot編譯target目錄下沒有resource下的文件踩坑記錄,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • java設(shè)計模式學(xué)習(xí)之策略模式

    java設(shè)計模式學(xué)習(xí)之策略模式

    這篇文章主要為大家詳細介紹了java設(shè)計模式學(xué)習(xí)之策略模式的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • java?安全ysoserial?URLDNS利用鏈分析

    java?安全ysoserial?URLDNS利用鏈分析

    這篇文章主要為大家介紹了java?安全ysoserial?URLDNS利用鏈分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • Guava - 并行編程Futures詳解

    Guava - 并行編程Futures詳解

    這篇文章主要介紹了Guava - 并行編程Futures詳解方法的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • SpringMVC中常用注解與使用方法詳解

    SpringMVC中常用注解與使用方法詳解

    這篇文章主要介紹了SpringMVC中常用注解與使用方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-05-05

最新評論