微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Maven发布/部署到github软件包

如何解决Maven发布/部署到github软件包

我正在尝试将我的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。

最终,我想部署三件事:

  1. 站点/ javadocs转换为gh-pages
  2. Maven存储库中的正常Maven工件
  3. (可能是可执行的)jar-with-depends到github版本/下载

第二个部署目标处理正常的企业级用例:客户端代码使用maven构建,并仅声明依赖项。

第三个部署目标处理简单的初学者级用例:用户手动下载jar-with-dependencies。

对于应用程序,它们被打包为带有适当清单的可执行jar,以便java -jar <artifact>.jar起作用。

对于库来说,它们只是jar-with-dependencies,因此初学者不必学习手动管理依赖项。

解决方法

只要您看到<my username>:********@github.com而不是git:********@github.com,您的SSH密钥将无法在GitHub上对您进行身份验证。

GitHub SSH URL将始终使用远程用户“ git”,而不使用“ <my username>”。
检查发布的Manven插件是否正在使用用户名服务器设置,这将解释您为什么看到用户名。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?