V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
tomoya92
V2EX  ›  问与答

Maven 对父子模块打包问题请教

  •  
  •   tomoya92 · 2018-01-03 11:29:26 +08:00 · 3536 次点击
    这是一个创建于 2524 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目地址: https://github.com/tomoya92/spring-boot-security-demo

    父项目是空的,里面有两个模块:admin module

    admin 是后台的 controller + 页面 + 静态文件

    module 是项目里用到的 model, repository, service 以及工具类等

    现在对父项目打包,每个模块里的 target 目录里都会打出一个 jar 包,是没问题的

    但当我运行 java -jar admin/target/admin.jar 的时候,会报一个错,说 module.jar 找不到,也就是说,我在运行 admin.jar 启动项目的时候,要先运行一下 mvn install 把 module.jar 装到本地的~/.m2/repository 里,然后才能启动 admin.jar

    我的问题:

    可以通过配置达到打 jar 包后直接把 module.jar 也打到 admin.jar 里吗?也就是打完 jar 包后,直接运行 java -jar admin/target/admin.jar 不报错,如果可以的话,请教怎么配置的,谢谢!

    第 1 条附言  ·  2018-01-16 14:23:07 +08:00

    找到方法了,感谢豆丁的帮助

    在子项目里的pom.xml加上下面这个插件

    <build>
        <finalName>admin</finalName>
        <plugins>
          <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
              <executable>true</executable>
              <mainClass>co.yiiu.AdminApplication</mainClass>
              <includeSystemScope>true</includeSystemScope>
            </configuration>
            <executions>
              <execution>
                <configuration>
                  <classifier>exec</classifier>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    

    然后在最外层项目里运行 mvn clean compile package 就可以打包了,最后运行 java -jar xxx-exec.jar 就可以启动了

    1 条回复    2018-01-03 19:57:49 +08:00
    SoloCompany
        1
    SoloCompany  
       2018-01-03 19:57:49 +08:00
    关键字 fat jar plugin
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2596 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 06:58 · PVG 14:58 · LAX 22:58 · JFK 01:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.