首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Maven跳过部署&只推Docker映像

Maven跳过部署&只推Docker映像
EN

Stack Overflow用户
提问于 2018-08-06 19:04:00
回答 1查看 5.8K关注 0票数 6

我已经在我的Maven项目中部署了插件和dockerize插件。

部署插件,

代码语言:javascript
运行
复制
<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <executions>
                    <execution>
                        <id>default-deploy</id>
                        <phase>deploy</phase>
                    </execution>
                </executions>
            </plugin>

文件插件,

代码语言:javascript
运行
复制
<profiles>
        <profile>
            <id>docker</id>
            <properties>
                <assembly.skipAssembly>true</assembly.skipAssembly>
            </properties>
            <build>
                <finalName>${project.artifactId}</finalName>
                <plugins>
                    <plugin>
                        <groupId>com.spotify</groupId>
                        <artifactId>dockerfile-maven-plugin</artifactId>
                        <version>${version.docker.plugin}</version>
                        <executions>
                            <execution>
                                <id>dockerize-app</id>
                                <goals>
                                    <goal>build</goal>
                                    <goal>push</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <repository>${docker.image-prefix}${project.artifactId}</repository>
                            <tag>${project.version}</tag>
                            <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
                            <buildArgs>
                                <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
                            </buildArgs>
                            <resources>
                                <resource>
                                    <targetPath>/</targetPath>
                                    <directory>${project.build.directory}</directory>
                                    <include>${project.artifactId}.war</include>
                                </resource>
                            </resources>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

我有下面的用例。

  1. 单独部署工件
  2. 单独部署Docker映像
  3. 部署工件和码头映像

为了实现这一点,我在profile下添加了Docker插件。这样,Docker映像将在传递配置文件名称时被部署。

mvn部署

上面的命令只部署工件。

mvn部署-P码头

上面的命令将部署工件& Docker映像。

但是,我无法仅仅部署Docker映像。

为了只部署Docker映像,我在中添加了下面的配置,

代码语言:javascript
运行
复制
<configuration>
                    <skip>true</skip>
                </configuration>

或者,将默认部署设置为none。

代码语言:javascript
运行
复制
<execution>
                        <id>default-deploy</id>
                        <phase>none</phase>
                    </execution>

以上两种方法需要改变pom。

  1. 另一种方法是为部署创建一个配置文件,这样我们就可以传递我们想要的配置文件。

还有其他更好的方法吗?或者,使用Maven参数可以跳过部署吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-13 08:05:08

我认为你可以通过使用属性而不是配置文件来做你想做的事情。只要删除docker配置文件并将配置直接放在POM中,下面的命令就可以工作了:

  • 只部署Docker映像的mvn -Dmaven.deploy.skip deploy (跳过默认的deploy阶段)
  • mvn -Ddockerfile.skip deploy只将工件部署到存储库管理器。跳过目标的选项(如dockerfile.skip)在 documentation上进行了描述
  • 同时部署mvn deploy (工件和Docker映像)
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51714101

复制
相关文章

相似问题

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