我正在尝试将我的javadocs发布到gh-pages,并将maven存储库发布到github maven存储库。该站点似乎可以正常部署,但是发行插件失败了。似乎找不到我配置的github凭证。这是Maven插件之一中的错误,还是我以某种方式未能指定正确的凭据?
pom.xml:
<scm>
<url>https://github.com/${repo.user}/${repo.name}</url>
<connection>scm:git:ssh://git@github.com/${repo.user}/${repo.name}.git</connection>
<developerConnection>scm:git:ssh://git@github.com/${repo.user}/${repo.name}.git</developerConnection>
<tag>HEAD</tag>
</scm>
<distributionManagement>
<repository>
<id>github</id>
<name>GitHub</name>
<url>https://maven.pkg.github.com/${repo.user}/${repo.name}</url>
</repository>
<site>
<id>gh-pages</id>
<name>Github</name>
<url>scm:git:ssh://git@github.com/${repo.user}/${repo.name}.git</url>
</site>
</distributionManagement>
settings.xml:
<settings>
<servers>
<server>
<id>github</id>
<username>${env.GITHUB_API_USERNAME}</username>
<password>${env.GITHUB_API_KEY}</password>
</server>
<server>
<id>gh-pages</id>
<username>git</username>
<configuration>
<scmVersionType>branch</scmVersionType>
<scmVersion>gh-pages</scmVersion>
</configuration>
</server>
</servers>
</settings>
〜/ .ssh / config:
Host *
Hostname github.com
User git
IdentityFile ~/.ssh/git_ecdsa
输出,MVN发布:准备:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:3.0.0-M1:prepare (default-cli) on project ia: Unable to tag SCM
[ERROR] Provider message:
[ERROR] The git-push command failed.
[ERROR] Command output:
[ERROR] Pseudo-terminal will not be allocated because stdin is not a terminal.
[ERROR] Warning: Permanently added the RSA host key for IP address '140.82.112.4' to the list of known hosts.
[ERROR] <my username>:********@github.com: Permission denied (publickey).
[ERROR] fatal: Could not read from remote repository.
[ERROR]
[ERROR] Please make sure you have the correct access rights
[ERROR] and the repository exists.
[ERROR]
[ERROR] -> [Help 1]
编辑: 将settings.xml更改为使用'git'用户名会导致此错误:
[WARNING] Could not transfer metadata com.<user>:<repo>:<version>-SNAPSHOT/maven-metadata.xml from/to github (https://maven.pkg.github.com/<User>/<Repo>): Authentication failed for https://maven.pkg.github.com/<User>/<Repo>/com/<user>/<repo>/<version>-SNAPSHOT/maven-metadata.xml 401 Unauthorized
...
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1:deploy (default-deploy)
编辑: 如果有帮助,请在此处访问公司母公司POM(我目前在其中工作): https://github.com/InnovAnon-Inc/IA
和一个“简单”子项目在这里: https://github.com/InnovAnon-Inc/SimpleJavaPrograms
父级POM应该是一个相当简单且通用的类...希望那里没有什么奇怪的事情。
该子项目很奇怪:一个开发人员是初学者,使用的是玩具IDE。我希望该项目和测试能够在该IDE中运行,因此它使用“简单”目录结构,而不是标准目录结构。此外,我希望能够通过运行单元测试,创建易于使用的工件以及部署文档和工件的dev ops管道来运行该项目。这样,初学者不必学习任何课外主题,例如构建系统,即可从测试驱动的开发策略中受益。协作也将更加简单,因为我将能够查看测试结果,堆栈跟踪和当前源代码。
编辑: 任何将这些FOSS工件部署到免费存储库中的解决方案,我都会感到满意,因此它们可用于Maven。
最终,我想部署三件事:
第二个部署目标处理正常的企业级用例:客户端代码使用maven构建,并仅声明依赖项。
第三个部署目标处理简单的初学者级用例:用户手动下载jar-with-dependencies。
对于应用程序,它们被打包为带有适当清单的可执行jar,以便java -jar <artifact>.jar
起作用。
对于库来说,它们只是jar-with-dependencies,因此初学者不必学习手动管理依赖项。
答案 0 :(得分:0)
只要您看到<my username>:********@github.com
而不是git:********@github.com
,您的SSH密钥将无法在GitHub上对您进行身份验证。
GitHub SSH URL将始终使用远程用户“ git
”,而不使用“ <my username>
”。
检查发布的Manven插件是否正在使用用户名服务器设置,这将解释您为什么看到用户名。