如何为Spring Boot多模块项目创建可执行的war/jar文件

11 浏览
0 Comments

如何为Spring Boot多模块项目创建可执行的war/jar文件

我正在尝试从Spring Boot多模块项目创建一个uber jar。示例提供在https://spring.io/guides/gs/multi-module/\n我有两个模块:\n

  
    library
    application

\n如果我从\"application\"运行\"mvn clean install spring-boot:repackage\",我会看到创建了application-0.0.1-SNAPSHOT.war文件。但是,一旦我用7-zip打开war文件,我发现在WEB-INF文件夹下没有\"Library\"模块的任何内容。显然,生成的war文件无法工作,因为它没有来自\"Library\"的任何引用类。\n这是父pom:\n \n 4.0.0\n multiModule\n parent-multi-module\n 0.0.1-SNAPSHOT\n pom\n \n library\n application\n\n\n bismillah.application.DemoApplication\n\n\n \n spring-releases\n https://repo.spring.io/libs-release\n \n\n\n \n spring-releases\n https://repo.spring.io/libs-release\n \n\n\n\n最后是\"library\"模块的pom:\n

    
    
    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.8.RELEASE
         
    
    bismillah
    library
    0.0.1-SNAPSHOT
    library
    Demo project for Spring Boot
    
        1.8
    
    
        
            org.springframework.boot
            spring-boot-starter-test
            test
            
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        
    

\n最后是\"application\"模块的pom:\n



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.8.RELEASE
         
    
    bismillah
    application
    0.0.1-SNAPSHOT
    application
    war
    Demo project for Spring Boot
    
        1.8
    
    
        
            org.springframework.boot
            spring-boot-starter-actuator
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            bismillah
            library
            ${project.version}
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
            
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        
    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    
                      
                        repackage
                      
                    
                  
            
        
    

\n如你所见,我使用了\"spring-boot-maven-plugin\"的\"repackage\"目标,但仍然不起作用。不确定我做错了什么...\n请帮忙看一下。

0
0 Comments

问题的原因是在Spring Boot多模块项目中创建可执行的war/jar文件时遇到困难。解决方法是在应用模块的pom文件的部分中将库模块作为依赖项添加进去。

具体操作如下:

1. 打开应用模块的pom文件。

2. 在标签下找到标签。

3. 在标签内添加以下代码:


    org.springframework.boot
    spring-boot-maven-plugin
    
        com.example.Application 
        true
    
    
        
            
                repackage
            
        
    

4. 保存并关闭pom文件。

5. 在项目根目录下运行以下命令来生成可执行的war/jar文件:

mvn clean package

这样就可以在目标文件夹下找到生成的可执行的war/jar文件了。

希望这篇文章能够帮助到你解决问题。如果有其他问题,请随时提问。

0