首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在父pom建筑的最末端运行docker-maven-plugin

在父pom建筑的最末端运行docker-maven-plugin
EN

Stack Overflow用户
提问于 2016-06-08 10:38:14
回答 1查看 2.1K关注 0票数 1

我正在尝试构建包含在构建父POM文件期间生成的一组.jar文件的docker映像。到目前为止,我发现的情况是,特定模块的单个构建会创建单独的坞映像。

我的对接映像包含Karaf和已部署的包。在某种程度上,我实现了创建码头,但当一切都建立。我担心docker plugin可能不支持这样的情况,即我希望从特定的包文件夹(每个子项目都将其捆绑包部署到特定文件夹)创建对接器映像。

目前,我发现父POM包类型只支持三个阶段,但无论如何,它们都是在构建过程中作为第一个项目运行的。所以问题是:

是否可以创建码头形象?

  • 包含在构建父POM项目期间构建的所有包,这些包部署到一个文件夹中。
  • 在运行某个父POM目标后自动执行

下面是家长POM的某些部分,最终可能与我的需求无关。

代码语言:javascript
复制
<build>
  <plugins>
     <plugin>
       <groupId>com.spotify</groupId>
       <artifactId>docker-maven-plugin</artifactId>
       <inherited>false</inherited>
       <version>0.4.10</version>
       <configuration>
         <imageName>test1</imageName>
         <dockerDirectory>../karaf-deploy</dockerDirectory>
         <resources>
           <resource>
              <targetPath>../karaf-deploy/</targetPath>
              <directory>../karaf-deploy/</directory>
              <include>${project.build.finalName}.jar</include>
            </resource>
          </resources>
        </configuration>
     </plugin>
   </plugins>
</build>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-08 11:15:21

子女与父母的关系只是一种特殊的依赖形式,孩子依赖于父母.因此,父母总是先建立在任何孩子之前。这也意味着您不能在父级中构建依赖于子级的任何内容,因为依赖于子级的父级基本上是一个循环依赖项。

因此,如果您只想捆绑一个工件,就可以将docker插件添加到该项目的生命周期中。但是,如果您想捆绑多个工件,您应该遵循@khmarbaise的建议:

  1. 定义一个新的单独的发行项目(甚至可以是pom打包或者使用特殊的扩展)
  2. 将分发项目作为子模块添加到现有父模块中。
  3. 在任何要捆绑/包装/包含的工件上添加普通的Maven依赖项
  4. copy-dependencies阶段定义prepare-package步骤以复制依赖项以生成目录
  5. package阶段定义docker-maven-plugin设置,以捆绑复制的依赖项。

如果您的发行插件可以直接从Maven中选择依赖项,请跳过步骤4。我们使用的是io.fabric8坞-maven-插件,您可以在这里定义程序集样式描述符,如下所示:

代码语言:javascript
复制
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
    <id>all-artifacts</id>
    <dependencySets>
        <dependencySet>
            <outputDirectory>/</outputDirectory>
            <useProjectArtifact>true</useProjectArtifact>
        </dependencySet>
    </dependencySets>
</assembly>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37700135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档