精华内容
下载资源
问答
  • 主要介绍了Maven多个项目实现聚合过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 今天小编就为大家分享一篇关于Maven聚合(模块)和Parent继承,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • 二、删除项目中的src目录,把pom.xml中的项目打包方式改为pom,如下: com.example springboot-multi 0.0.1-SNAPSHOT pom 三、创建springboot-multi项目的子模块,在项目上右键单击,选择:new -> Module。 四...

    主项目 springboot-multi
    子模块 entity、dao、service、web

    二、删除项目中的src目录,把pom.xml中的项目打包方式改为pom,如下:

    com.example
    springboot-multi
    0.0.1-SNAPSHOT

    pom
    三、创建springboot-multi项目的子模块,在项目上右键单击,选择:new -> Module。

    四、创建四个子模块后,删除子模块中 src/main/java、src/main/java下的所有文件(如果没有文件跳过此操作),只保留web子模块的SpringBoot的Application主启动类。

    五、主项目pom.xml (注意标签是否指定了子模块)

    <modelVersion>4.0.0</modelVersion>  
      <groupId>com.example</groupId> 
      <artifactId>springboot-multi</artifactId> 
      <version>0.0.1-SNAPSHOT</version> 
      <!-- 此处改为pom --> 
      <packaging>pom</packaging> 
     
      <name>springboot-multi</name> 
      <description>Demo project for Spring Boot</description> 
     
      <modules> 
        <module>web</module> 
        <module>service</module> 
        <module>dao</module> 
        <module>entity</module> 
      </modules> 
     
      <parent> 
        <groupId>org.springframework.boot</groupId> 
        <artifactId>spring-boot-starter-parent</artifactId> 
        <version>1.5.10.RELEASE</version> 
        <relativePath/> <!-- lookup parent from repository --> 
      </parent> 
     
      <properties> 
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
        <java.version>1.8</java.version> 
      </properties> 
     
      <dependencies> 
        <dependency> 
          <groupId>org.springframework.boot</groupId> 
          <artifactId>spring-boot-starter-web</artifactId> 
        </dependency> 
      </dependencies> 
     
      <!--指定使用maven打包--> 
      
    <build> 
        <plugins> 
          <plugin> 
            <groupId>org.apache.maven.plugins</groupId> 
            <artifactId>maven-compiler-plugin</artifactId> 
            <version>3.1</version> 
            <configuration> 
              <source>${java.version}</source> 
              <target>${java.version}</target> 
            </configuration> 
          </plugin> 
     
          <plugin> 
            <groupId>org.apache.maven.plugins</groupId> 
            <artifactId>maven-surefire-plugin</artifactId> 
            <version>2.19.1</version> 
            <configuration> 
              <skipTests>true</skipTests>  <!--默认关掉单元测试 --> 
            </configuration> 
          </plugin> 
        </plugins> 
      </build>
    六、web子模块pom.xml(依赖service、dao、entity子模块) 
    
    <modelVersion>4.0.0</modelVersion>  
      <groupId>com.example</groupId> 
      <artifactId>web</artifactId> 
      <version>0.0.1-SNAPSHOT</version> 
      <packaging>jar</packaging> 
     
      <name>web</name> 
      <description>Demo project for Spring Boot</description> 
     
      <parent> 
        <groupId>com.example</groupId> 
        <artifactId>springboot-multi</artifactId> 
        <version>0.0.1-SNAPSHOT</version> 
        <relativePath>../pom.xml</relativePath> 
      </parent> 
     
      <dependencies> 
        <dependency> 
          <groupId>com.example</groupId> 
          <artifactId>service</artifactId> 
          <version>0.0.1-SNAPSHOT</version> 
        </dependency> 
        <dependency> 
          <groupId>com.example</groupId> 
          <artifactId>dao</artifactId> 
          <version>0.0.1-SNAPSHOT</version> 
        </dependency> 
        <dependency> 
          <groupId>com.example</groupId> 
          <artifactId>entity</artifactId> 
          <version>0.0.1-SNAPSHOT</version> 
        </dependency> 
      </dependencies> 
     
      <!--spring boot打包的话需要指定一个唯一的入门--> 
      <build> 
        <plugins> 
          <plugin> 
            <groupId>org.springframework.boot</groupId> 
            <artifactId>spring-boot-maven-plugin</artifactId> 
            <configuration> 
              <!-- 指定该Main Class为全局的唯一入口 --> 
              <mainClass>com.example.WebApplication</mainClass> 
              <layout>ZIP</layout> 
            </configuration> 
            <executions> 
              <execution> 
                <goals> 
                  <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中--> 
                </goals> 
              </execution> 
            </executions> 
          </plugin> 
        </plugins> 
      </build>
    七、service子模块pom.xml(依赖 dao 、entity子模块)
    
    <modelVersion>4.0.0</modelVersion> 
     
      <groupId>com.example</groupId> 
      <artifactId>service</artifactId> 
      <version>0.0.1-SNAPSHOT</version> 
      <packaging>jar</packaging> 
     
      <name>service</name> 
      <description>Demo project for Spring Boot</description> 
     
      <parent> 
        <groupId>com.example</groupId> 
        <artifactId>springboot-multi</artifactId> 
        <version>0.0.1-SNAPSHOT</version> 
        <relativePath>../pom.xml</relativePath> 
      </parent> 
     
      <dependencies> 
        <dependency> 
          <groupId>com.example</groupId> 
          <artifactId>dao</artifactId> 
          <version>0.0.1-SNAPSHOT</version> 
        </dependency> 
        <dependency> 
          <groupId>com.example</groupId> 
          <artifactId>entity</artifactId> 
          <version>0.0.1-SNAPSHOT</version> 
        </dependency> 
      </dependencies>
    八、dao子模块pom.xml (依赖entity子模块) 
    
    <modelVersion>4.0.0</modelVersion> 
     
    <groupId>com.example</groupId> 
    <artifactId>dao</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 
     
    <name>dao</name> 
    <description>Demo project for Spring Boot</description> 
     
    <parent> 
      <groupId>com.example</groupId> 
      <artifactId>springboot-multi</artifactId> 
      <version>0.0.1-SNAPSHOT</version> 
      <relativePath>../pom.xml</relativePath> 
    </parent> 
     
    <dependencies> 
      <dependency> 
        <groupId>com.example</groupId> 
        <artifactId>entity</artifactId> 
        <version>0.0.1-SNAPSHOT</version> 
      </dependency> 
    </dependencies>
    九、entity子模块
    
    <modelVersion>4.0.0</modelVersion> 
     
    <groupId>com.example</groupId> 
    <artifactId>entity</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 
     
    <name>entity</name> 
    <description>Demo project for Spring Boot</description> 
     
      <parent> 
        <groupId>com.example</groupId> 
        <artifactId>springboot-multi</artifactId> 
        <version>0.0.1-SNAPSHOT</version> 
        <relativePath>../pom.xml</relativePath> 
      </parent>
    十、pom.xml文件中需要注意的就是:
    
    主项目的modules标签指定的子模块是否正确
    子模块之间的依赖
    子模块的parent标签
    十一、web子模块的Application启动类:
    
    @RestController 
    @SpringBootApplication 
    public class WebApplication { 
     
      public static void main(String[] args) { 
        SpringApplication.run(WebApplication.class, args); 
      } 
     
      @RequestMapping(value = "/test",method = RequestMethod.GET) 
      public String test(){ 
        return "test success"; 
      } 
    }
    
    展开全文
  • Maven聚合工程打包问题项目场景:问题描述:原因分析:解决方案: 详细讲解:https://www.cnblogs.com/lenve/p/11156340.html 项目场景: 使用Maven的聚合工程开发SpringCloud项目,打包时报错 问题描述: ...

    详细讲解:https://www.cnblogs.com/lenve/p/11156340.html

    项目场景:

    使用Maven的聚合工程开发SpringCloud项目,打包时报错

    问题描述:

    打包时,聚合工程下的各个子模块,可能会出现相互依赖的关系,导致打包时报错:
    Error:(4,30) java: 程序包com.xx.xx.xxx不存在
    

    原因分析:

    引用自:https://www.cnblogs.com/lenve/p/11156340.html

    Spring Boot 中默认打包成的 jar 叫做 可执行 jar,这种 jar 不同于普通的 jar,普通的 jar 不可以通过 java -jar xxx.jar 命令执行,普通的 jar 主要是被其他应用依赖,Spring Boot 打成的 jar 可以执行,但是不可以被其他的应用所依赖,即使强制依赖,也无法获取里边的类。

    解决方案:

    我的解决方案是直接在聚合工程(父工程)中的spring-boot-maven-plugin 插件添加 configuration 内容
     <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <!--添加的内容-->
                    <configuration>
                        <classifier>falcon</classifier>
                    </configuration>
                </plugin>
    
            </plugins>
        </build>
    
    展开全文
  • 参考文章:Maven 插件 - 打包环境配置文件设置Maven 环境打包maven 环境打包发布的两种方式 开发中碰到的问题1 现在采用 spring boot 开发时,spring boot 开发的配置文件结构目录,如下图所示: 这样...

    说明

    本文只是一个总结
    参考文章:
    Maven 插件 - 打包时多环境配置文件设置
    Maven 多环境打包
    maven 多环境打包发布的两种方式

    开发中碰到的问题1

    现在采用 spring boot 开发时,spring boot 开发的配置文件结构目录,如下图所示:

    配置结构

    这样有个好处是配置文件可以分开,公用的配置项可以放在 application.properties 文件里面,再通过 spring.profiles.active 配置项来激活 各个环境的配置项,在使用 spring cloud config 之后,可能还会多一个 bootstrap.properties , 这个文件无法支持多环境配置 , 所以每次在使用 maven 构建打包时,总会手动去改大量配置,这样打包时,可能忘记修改某个配置而导致最后发布的包出现问题。所以我们需要用到使用 maven 进行多环境打包。

    Maven 多环境打包

    1. 修改 pom.xml

    pom.xml 文件中 添加 <profiles></profiles> 标签,然后 在此标签中加入<profile></profile>标签进行多环境配置。

    <profiles>
            <!-- 测试环境 -->
            <profile>
                <id>test</id>
                <activation>
                    <activeByDefault>true</activeByDefault>
                </activation>
                <properties>
                    <spring.profiles.active>test</spring.profiles.active>
                </properties>
            </profile>
            <!-- 开发环境 -->
            <profile>
                <id>dev</id>
                <activation>
                    <activeByDefault>false</activeByDefault>
                </activation>
                <properties>
                    <spring.profiles.active>dev</spring.profiles.active>
                </properties>
            </profile>
            <!-- 生产环境 -->
            <profile>
                <id>pro</id>
                <activation>
                    <activeByDefault>false</activeByDefault>
                </activation>
                <properties>
                    <spring.profiles.active>pro</spring.profiles.active>
                </properties>
            </profile>
    </profiles>
    

    其中 <activeByDefault></activeByDefault> 标签为true 时表示默认配置,通过 eclipse 执行 run asmaven install 时,默认使用 activeByDefaulttrue 的配置。
    同时需要在 pom.xml 文件中的 <build></build> 标签中加入:

    <build>
            <resources>
                <resource><!-- 扫描替换 -->
                    <directory>${project.basedir}/src/main/resources</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    

    用来指定打包时,去替换指定文件下的配置,这样 pom.xml 配置完成。

    修改 properties 文件

    修改 properties 文件就特别简单了,将在 pom.xmlprofileproperties 直接替换就行了。

    spring.profiles.active=@spring.profiles.active@
    

    打包

    此时如果执行 eclipse 中的 maven install 则会打包成默认的配置项。

    eclipse run as 面板

    但是通过 运行 maven build...

    maven build...

    Goals 中执行 clean install -P pro 则可打包其他环境。

    展开全文
  • Spring Boot 给聚合工程 打包部署,这里打jar包进行部署,首先等保证父子工程能正常运行,依赖都能加载,不会造成maven之间循环依赖等问题,如图 从上面的图来看,就会发生循环依赖的问题,这样子编译时就会发现...

    Spring Boot 给聚合工程 打包部署,这里打jar包进行部署,首先等保证父子工程能正常运行,依赖都能加载,不会造成maven之间循环依赖等问题,如图
    在这里插入图片描述
    从上面的图来看,就会发生循环依赖的问题,这样子编译时就会发现错误,一定要注意,避免发生循环依赖的问题,
    A模块 引入了B模块的依赖,B模块引入了 C模块,那么A模块也间接的引入了C模块的依赖,而这时 C模块又引入了A模块,这时候就会出现循环依赖等错误,maven加载的时候就会把这个错误给提示出来,这时候是启动不起来的,所以大家要注意的一点,还有就是Mvaen依赖的包,一定要做好版本管理,避免发生jar包冲突。项目能够正常进行的时候,我们这时候来说说项目打包等问题:

    替换默认的Spring Boot 打包插件

    在父pom.xml中替换默认的 Spring Boot 打包插件:

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

    替换成:

       <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.19.1</version>
                    <configuration>
                        <skipTests>true</skipTests>    <!--默认关掉单元测试 -->
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    

    增加 : packaging

     <packaging>pom</packaging>
    

    完整的父类pom.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <packaging>pom</packaging> <!-- pom 父类资源-->
        <modules><!-- 创建的子系统->
            <module>xxxxxx</module>
            <module>xxxxxx</module>
            <module>xxxxxx</module>
        </modules>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.16.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.example.xxxxxx</groupId>
        <artifactId>xxxxxx</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>xxxxxx</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
            <!-- test -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <!-- actuator 健康安全检查 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <!-- web -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
        </dependencies>
    <!--打包插件-->
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.19.1</version>
                    <configuration>
                        <skipTests>true</skipTests>    <!--默认关掉单元测试 -->
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    
    

    设置好了之后其他模块设置 packaging 打包为jar

     <packaging>jar</packaging>
    

    启动模块设置 pom.xml:

      <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <!-- 指定该Main Class为全局的唯一入口 这里是启动类的地址 -->
                        <mainClass>com.xxxxx.web.xxxxx.SpringBootShiroApplication</mainClass>
                        <layout>ZIP</layout>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    

    设置好了之后进行maven,找到父类的maven 第一次执行不需要clean,其他就需要了,点击package打包了好了
    在这里插入图片描述
    不出意外的话,在执行完成了,就打包成功了,然后就会在启动类下面找到jar,然后直接执行就好了。

    展开全文
  • idea的Maven聚合工程打包

    千次阅读 2019-12-19 19:58:48
  • Maven管理项目的时候,我们通常将一个业务作为一个单独的子业务进行开发处理,这样就需要使用到了聚合打包和聚合工程的创建问题了。在现在的物联网公司,一般是这个开发模式,对于传统的对日开发中,仍然是一个项目...
  • 项目报错: Could not resolve dependencies for ... 原因: 我的mapper项目 依赖pojo项目,而mapper项目和pojo项目是manager聚合项目的子模块,只把pojo项目 maven install mapper项目在mave库中找不到pojo ...
  • 最近建了一个新的maven聚合工程,provider依赖于api模块,打包的时候一直提示缺少api中的类,但是编译器查看却是完全正常的,没有报红。 解决 在建api的时候勾选了lombok,idea自动添加了此依赖,并且添加了如下...
  • 其他子项目均为其modules,且为jar项目eureka为注册中心、workflow为提供者、entrance为调用方entrance、workflow依赖于common所以此处我需要将eureka、workflow、entrance三个打包成jar,那么它们的pom.xml文件中需...
  • 首先一个比较低级的错误 一般有了开发经验不会犯 但是入门者可能会踩坑 要确保maven配置里面的maven仓库地址是可用的,典型错误:早期maven中央仓库是http传输的,后来改成了https, 网上可能还存在很错误的mirrors...
  • 主要介绍了Maven项目打包成war包部署到Tomcat的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • spring-boot-maven-plugin打包出来的jar是不可依赖的 我的项目的依赖关系 其中service依赖mapper 问题:在对service进行install安装依赖或package打包时间报错找不到mapper 原因: mapper中错误引入插件spring-...
  • maven聚合项目打包

    2020-05-20 16:46:21
    1.在resource资源文件... xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/p
  • 基于IDEA的SpringBoot项目Maven聚合工程打包项目结构1. 修改父项目的pom.xml文件2. 修改子项目的pom.xml文件3.测试3.1 在jt-manager的pom.xml中引入jt-utils的依赖3.2 在jt-manager中,编写Controller,调用jt-utils...
  • maven多模块打包

    2019-05-24 22:09:35
    那么对应的这三个模块需要先install才行,当然,如果需要install的项目也依赖了其他模块,那么先打包其他的木块,总有一个是没有依赖别人的,切记模块之间不能相互依赖. 只有web层有启动类 打包插件在web中,这是项目入口...
  • 右击空白处,new创建新maven工程:搜索maven项目父工程使用pom打包方式第二步:创建子工程右击父工程,创建mavenmodule工程:定义子工程,这里是以表现层为例,是web工程,所以打包方式为war,如果是其他非web工程就...
  • 包内喊有5个文档,包含maven本地搭建,私服搭设,于eclipse集成,创建web项目,创建聚合项目,打包和问题解决说明
  • Maven聚合项目模块打包,打不进其他工程包 1、比如:Zuul项目里面引用Common公共工程,打包报错找不到这个公共工程里面某些方法,解决方案如下: 在Common工程的Pom里面添加上下面这段代码 <build> <...
  • 在我们的项目中,使用了maven聚合模式,但是同时也使用了继承,也就是说,我们专门定义了一个父pom.xml,我们这里就叫A,这个pom.xml中也使用modules包含了子模块,同时子模块又继承了父pom.xml文件A,这样本质上...
  • Maven打包就一个问题,就是找不到依赖的问题,可能基于 Eclipse 和 IDEA 的一些配置管理的不同,打包有时会出现不同的结果,有时,Eclipse打包正常, IDEA无法打包,尝试各种方法解决,我之前写过一些总结,点击可...
  • maven聚合工程的创建和聚合工程的打包

    万次阅读 多人点赞 2015-09-23 11:21:21
    右击空白处,new创建新maven工程: 这里跳过默认的骨架,使用自动义的骨架   这里父工程必须使用pom打包方式   第二步:创建子工程 右击父工程,创建maven module工程:   跳骨默认骨架,输入子工程...
  • 一、创建聚合父工程二、创建子模块(module)三、编写子模块代码三、运行项目四、运维部署(模块打包)1. 添加打包插件2. 打包工程3. 启动项目《Java 2019 超神之路》《Dubbo 实现原理与源码解析 —— 精品合集》...
  • maven聚合项目 打包时候先整体install

    千次阅读 2017-01-18 15:25:11
    maven聚合项目 打包时候先整体install 以下比如下面的例子    [INFO] Reactor Summary: [INFO]  [INFO] bimatrix-main ..................................... SUCCESS [ 5.417 s] [INFO] bimatrix-main-common...
  • 1.模块聚合 模块聚合的项目也被称为聚合项目,一般情况下由一个父模块和若干个子模块组成。 其中,父模块必须以pom打包类型,同时以给出所有的子模块。父模块的POM示例如下: ... //pom 是最简单的打包类型,...
  • Eclipsehttps://blog.csdn.net/erhei0317/article/details/52686837 Ideahttps://www.cnblogs.com/limn/p/9363416.html
  • 聚合项目目录: 打war包不需要动父pom文件中的东西。找到你的启动类所在的子模块 我的启动类在dating-business模快中: 打开dating-business 模块的pom文件 ,在其中加入 <packaging>war</packaging>...
  • Maven聚合与继承

    千次阅读 多人点赞 2018-11-08 21:39:03
    关注微信公众号(文强的技术小屋),学习更技术知识,一起遨游知识海洋~ 快速导航: Maven基础概念和安装配置教程 Maven的仓库和settings.xml配置文件 Maven的坐标与依赖 Maven的生命周期...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,957
精华内容 4,382
关键字:

maven多聚合打包