关于maven父工程子工程和子模块之间的创建关系

有目标、有计划、有方向的去学习!

今天看到一个微服务项目,在关于管快管理方面,吃了大亏,对于idea的功能还是太过于生疏,而且我的眼睛好像瞎了似的看不到,以此谨记;

模块架构:
在这里插入图片描述
其中guli_project为父工程,common为子工程,common_utils、service_base和spring_security为子模块;
三者的管理关系为:层层管理
父工程guli_project的pom文件:

    <modelVersion>4.0.0</modelVersion>
    <packaging>pom</packaging>
    <modules>
        <module>common</module>
        <module>service</module>
    </modules>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.guo</groupId>
    <artifactId>guli_project</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>guli_project</name>
    <description>Demo project for Spring Boot</description>

子工程common的pom文件为:

    <parent>
        <artifactId>guli_project</artifactId>
        <groupId>com.guo</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>common</artifactId>
    <packaging>pom</packaging>
    <modules>
        <module>common_utils</module>
        <module>service_base</module>
        <module>spring_security</module>
    </modules>

在创建子模块时,出现子模块的管理是显示在父工程中的问题;本来子模块的管理应该出现在子工程中的;
如下:

    <modelVersion>4.0.0</modelVersion>
    <packaging>pom</packaging>
    <modules>
        <module>common</module>
        <module>common/spring_security</module>
        <module>service</module>
    </modules>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.guo</groupId>
    <artifactId>guli_project</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>guli_project</name>
    <description>Demo project for Spring Boot</description>

搞了半天才发现问题,原理是在创建子模块是,没有注意选择子模块的parent:
在这里插入图片描述
只有这样选择了parent module,才会按照maven的依赖来管理;导致我后面要是用mybatis-plus的代码生成器,一直导入不了包;不过好在最终发现了问题,得到及时解决;
生成器代码:

public class CodeGenerator {
    @Test
    public void run(){
        // 1、创建代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 2、全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir("E:\\Environment\\project_file\\guli_project\\service\\service_edu" + "/src/main/java");
        gc.setAuthor("magic_guo");
        gc.setOpen(false); //生成后是否打开资源管理器
        gc.setFileOverride(false); //重新生成时文件是否覆盖
        gc.setServiceName("%sService");	//去掉Service接口的首字母I
        gc.setIdType(IdType.ID_WORKER_STR); //主键策略
        gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
        gc.setSwagger2(true);//开启Swagger2模式

        mpg.setGlobalConfig(gc);

        // 3、数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/guli_edu?serverTimezone=GMT%2B8");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("123456");
        dsc.setDbType(DbType.MYSQL);
        mpg.setDataSource(dsc);

        // 4、包配置
        PackageConfig pc = new PackageConfig();
        pc.setModuleName("edu"); //模块名
        pc.setParent("com.guo");
        pc.setController("controller");
        pc.setEntity("entity");
        pc.setService("service");
        pc.setMapper("mapper");
        mpg.setPackageInfo(pc);

        // 5、策略配置
        StrategyConfig strategy = new StrategyConfig();
        // 要扫描的数据库,如果不设置,则全部的表都会被扫描生成;
//        strategy.setInclude("edu_video");
        strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
        strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀

        strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
        strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作

        strategy.setRestControllerStyle(true); //restful api风格控制器
        strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符

        mpg.setStrategy(strategy);


        // 6、执行
        mpg.execute();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值