我有一个多模块 Maven 项目。父 pom 看起来像这样:
<project>
...
<packaging>pom</packaging>
<modules>
<module>common</module>
<module>a</module>
<module>b</module>
</modules>
</project>
Run Code Online (Sandbox Code Playgroud)
common
构建一个 jar,它作为依赖项添加到其他模块中,如下所示:
<dependency>
<groupId>my.project</groupId>
<artifactId>common</artifactId>
<version>${module.common.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
Modulesa
和b
Spring Boot 项目具有spotify docker 插件。
我需要能够运行mvn deploy
才能让 spotify 插件推送 docker 镜像。
mvn install
工作正常,它构建了 docker 图像。但是为了推送它们,当我运行时mvn deploy
,它会为common
模块抛出错误:
[错误] 无法在项目 common 上执行目标 org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy):部署失败:在 distributionManagement 元素内的 POM 中或在 - 中未指定存储库元素DaltDeploymentRepository=id::layout::url 参数
搜索此错误,此答案建议在该distributionManagement
部分中添加存储库 url 。但我不想部署common
. 我只想构建它,因此它作为其他模块中的依赖项被注入并部署这些其他模块。我怎样才能做到这一点?
我尝试仅部署a
并b
使用此命令,但它给出了相同的错误common …
我正在使用 spotify 创建 docker 图像。我的 docker 镜像创建成功,但没有 oa 名称。我在控制台下面:
图像将在没有名称的情况下构建
POM文件
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.nv</groupId>
<artifactId>microeurekaserver</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>MicroEurekaServer</name>
<description>Eureka Server</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.SR2</spring-cloud.version>
<docker.image.prefix>nvarshney44/nvarshney</docker.image.prefix>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<forceTags>true</forceTags>
<imageTags>
<imageTag>${project.version}</imageTag>
<imageTag>latest</imageTag>
</imageTags>
<resources>
<resource>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<serverId>docker-hub</serverId>
<registryUrl>https://index.docker.io/v1/</registryUrl>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
请帮我看看它有什么问题。在 maven 输出中,它显示 dockerfile:null 可能是因为它正在花费一些问题。
docker spring-boot spotify-docker-client docker-maven-plugin
[错误] 无法在项目 Bookstore 上执行目标 com.spotify:docker-maven-plugin:1.0.0:build (default):捕获异常:java.util.concurrent.ExecutionException:com.spotify.docker.client.shaded。 javax.ws.rs.ProcessingException: org.apache.http.conn.HttpHostConnectException: 连接到 localhost:2375 [localhost/127.0.0.1] 失败: 连接被拒绝
为什么这个异常不断发生,我该如何解决它,我正在从 war 文件构建 docker 图像。
pom.xml
<modelVersion>4.0.0</modelVersion>
<groupId>net.codejava.javaee.bookstore</groupId>
<artifactId>Bookstore</artifactId>
<version>1.2.1</version>
<packaging>war</packaging>
<properties>
<docker.image.prefix>alesblaze</docker.image.prefix>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<finalName>BookStore</finalName>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>Docker</dockerDirectory>
<dockerHost>https://localhost:3000</dockerHost>
<forceTags>true</forceTags> …
Run Code Online (Sandbox Code Playgroud)