java - spring boot多模块项目如打包?
巴扎黑
巴扎黑 2017-05-27 17:41:23
[Java讨论组]

我构建了一个简单的多模块的项目:
结构:

外层pom.xml如下

     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0

com.scum
demo-package
1.0-SNAPSHOT
pom


    demo-controller
    demo-service


    
        
            
            org.springframework.boot
            spring-boot-maven-plugin
        
            com.example.demo.DemoControllerApplication
            ZIP
        
        
            
                
                    repackage
                
                
                
            
        
    

`
web pom文件`

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0

com.example
demo-controller
0.0.1-SNAPSHOT
jar

demo-controller
Demo project for Spring Boot


    org.springframework.boot
    spring-boot-starter-parent
    1.5.3.RELEASE
     



    UTF-8
    UTF-8
    1.8



    
        org.springframework.boot
        spring-boot-starter-web
    

    
        org.springframework.boot
        spring-boot-starter-test
        test
    



    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    


`

能运行 打包报IndexService 不存在

package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@SpringBootApplication
@Controller
public class DemoControllerApplication {
    @Autowired
    private IndexService indexService;

    public static void main(String[] args) {
        SpringApplication.run(DemoControllerApplication.class, args);
    }

    @RequestMapping(value = "")
    @ResponseBody
    public String index(){
        return indexService.Index();
    }
}
巴扎黑
巴扎黑

全部回复(1)
大家讲道理

这不是Spring-boot的问题,这是Maven依赖的问题

假设我有一个maven工程是酱紫的

尖括号是工程类型,前面是工程层级

iot-cloud<pom>

iot-http<jar>
iot-mqtt<jar>
iot-oauth<jar>
iot-sql-service<jar>
iot-restful<war>

iot-cloud总工程下有5个子工程,其中iot-restful是入口工程,也就是Spring-boot的启动工程,它依赖其他四个工程来提供服务,那么你就在iot-resutful中引入其它四个作为dependency,然后maven install就好了

当然啦,测试用例不打包,配置文件引入优先级还是要考虑的


iot-restful的pom.xml

<dependencies>
        <dependency>
            <groupId>pri.somnus</groupId>
            <artifactId>iot-http</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>pri.somnus</groupId>
            <artifactId>iot-http</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>pri.somnus</groupId>
            <artifactId>iot-mqtt</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>pri.somnus</groupId>
            <artifactId>iot-oauth</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>pri.somnus</groupId>
            <artifactId>iot-sql-service</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号