Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 在多模块项目中构建可部署jar_Maven_Spring Boot - Fatal编程技术网

Maven 在多模块项目中构建可部署jar

Maven 在多模块项目中构建可部署jar,maven,spring-boot,Maven,Spring Boot,我的项目结构如下: parent/ server/ - Spring Boot Application pom.xml client-1/ - Angular Web Application pom.xml client-2/ - Angular Web Application pom.xml pom.xml 我能够构建这个应用程序,其中Spring Boot应用程序是一个jar,它在static/文件夹中包含两个Angular客户端 但是,目

我的项目结构如下:

parent/
  server/    - Spring Boot Application
    pom.xml
  client-1/  - Angular Web Application
    pom.xml
  client-2/  - Angular Web Application
    pom.xml
  pom.xml
我能够构建这个应用程序,其中Spring Boot应用程序是一个
jar
,它在
static/
文件夹中包含两个Angular客户端

但是,目前Spring Boot应用程序的
pom.xml
必须了解客户机,我想将其转移到父级

但我在这里缺乏一些专业技能


这就是应该发生的事情:

  • 构建Web客户端
  • 构建Spring启动应用程序
  • 将web客户端复制到
    static/
  • 我目前正在使用
    maven resources插件
    复制客户端内容,但我注意到有一个问题-如果客户端尚未构建,那么它将不会复制任何内容到最终的
    jar
    ,这意味着web客户端缺少部署

    现在,这是父对象的
    pom.xml

    
    4.0.0
    mz
    mz父代
    1.0-快照
    聚甲醛
    mz服务器
    mz管理员
    mz网
    
    我怎样才能做到这一点


    下面是我目前如何使用
    maven资源插件构建
    jar
    。但是如上所述,在这种情况下,服务器项目必须了解客户机,这也不能保证客户机首先得到构建

    
    maven资源插件
    复制资源
    验证
    复制资源
    ${build.directory}/classes/static/
    ../mz管理员/区
    复制网页
    验证
    复制资源
    ${build.directory}/classes/static/
    ../mz web/dist
    
    将您的
    client-1
    client-2
    添加为您的
    服务器
    项目的依赖项。这将确保在服务器和文件可用之前构建客户端。

    我这样做了,但是
    服务器总是首先构建。
    jar
    文件被创建,并且只有在创建之后,其他客户端才能被构建。maven依赖项不是这样工作的。Maven总是在依赖项之后构建依赖项。至少,就我和maven的合作而言,你是对的,那是我的错误。依赖项以正确的顺序生成。