Maven 发布插件失败
Posted
技术标签:
【中文标题】Maven 发布插件失败【英文标题】:Maven release plugin fails 【发布时间】:2020-12-11 11:36:20 【问题描述】:我正在尝试发布,但失败了
mvn 发布:执行
错误是
部署失败:没有在 POM 中的 distributionManagement 元素或 -DaltDeploymentRepository=id::layout::url 参数中指定存储库元素
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.abondar.experimental.wsboard</groupId>
<artifactId>WebScrumBoard</artifactId>
<version>1.2-SNAPSHOT</version>
<properties>
<springboot.version>2.1.8.RELEASE</springboot.version>
<cxf.version>3.3.2</cxf.version>
<junit.version>5.3.2</junit.version>
<jaxb.version>2.3.1</jaxb.version>
<camel.version>2.24.1</camel.version>
<build-plugin.jacoco.version>0.8.4</build-plugin.jacoco.version>
<build-plugin.coveralls.version>4.3.0</build-plugin.coveralls.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<deploy.plugin.version>2.8.1</deploy.plugin.version>
<nexus.staging.version>1.5.1</nexus.staging.version>
</properties>
<packaging>pom</packaging>
<distributionManagement>
<snapshotRepository>
<id>nexus-repositories</id>
<name>maven snapshots</name>
<url>http://localhost:8081/repository/maven-snapshots/</url>
</snapshotRepository>
<repository>
<id>nexus-repositories</id>
<name>maven releases</name>
<url>http://localhost:8081/repository/maven-releases/</url>
<layout>default</layout>
</repository>
</distributionManagement>
<scm>
<connection>scm:git:git@github.com:abondar24/WebScrumBoard</connection>
<url>https://github.com/abondar24/WebScrumBoard</url>
<developerConnection>scm:git:https://github.com/abondar24/WebScrumBoard.git</developerConnection>
<tag>HEAD</tag>
</scm>
<modules>
<module>dataModel</module>
<module>webService</module>
<module>ui</module>
<module>dao</module>
<module>base</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>$springboot.version</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>$springboot.version</version>
</dependency>
<dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-service-description-swagger</artifactId>
<version>$cxf.version</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>
11
</release>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>$project.build.directory/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<forkCount>0</forkCount>
<argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.6.0.1398</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>$build-plugin.jacoco.version</version>
<executions>
<execution>
<id>pre-unit-test</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>post-unit-test</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eluder.coveralls</groupId>
<artifactId>coveralls-maven-plugin</artifactId>
<version>$build-plugin.coveralls.version</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>$deploy.plugin.version</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>$nexus.staging.version</version>
<executions>
<execution>
<id>default-deploy</id>
<phase>deploy</phase>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
<configuration>
<serverId>nexus</serverId>
<nexusUrl>http://localhost:8081/nexus/</nexusUrl>
<skipStaging>true</skipStaging>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<tagNameFormat>v@project.version</tagNameFormat>
<autoVersionSubmodules>true</autoVersionSubmodules>
</configuration>
</plugin>
</plugins>
</build>
我不明白这个问题。通过 deploy-plugin 部署到快照 repo 效果很好
【问题讨论】:
不确定,可能是 nexus-staging-maven-plugin 导致了问题。 你确定你正在查看有问题的 pom.xml 吗? 【参考方案1】:在正确回滚和拆分 nexus 服务器 id 后问题得到解决
【讨论】:
以上是关于Maven 发布插件失败的主要内容,如果未能解决你的问题,请参考以下文章