java - 如何将 maven 插件上传到 Github 包?

标签 java maven maven-plugin maven-deploy-plugin github-package-registry

考虑我有一个 maven 插件项目,我想将它发布到 Github 的名为“Github Packages”的公共(public) maven 存储库。我已经通过 instruction 完成了所有工作对于普通项目,开箱即用一切正常。但是对于带有 packaging=maven-plugin 的 maven 插件项目,该指令不起作用。

在构建日志中,我看到如下内容:

[WARNING] Could not transfer metadata repo-name/maven-metadata.xml from/to github (https://maven.pkg.github.com/user-name/repo-name): Failed to transfer file: https://maven.pkg.github.com/user-name/repo-name/group-id/maven-metadata.xml. Return code is: 422 , ReasonPhrase:Unprocessable Entity.



似乎 maven 部署插件在 group-id 的根目录中需要 maven-metadata.xml,但找不到它,也没有人把它放在那里。如何解决这个问题呢?

我使用 Apache Maven 3.3.9,并使用命令:
mvn clean deploy

--添加:我正在使用的 pom 文件示例:
<?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>

<repositories>
    <repository>
        <id>central</id>
        <url>https://repo1.maven.org/maven2</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>github</id>
        <name>GitHub my_repo Apache Maven Packages</name>
        <url>https://maven.pkg.github.com/my_nick/my_repo</url>
    </repository>
</repositories>

<version>1.0.0</version>
<groupId>x</groupId>
<artifactId>some-plugin</artifactId>
<packaging>maven-plugin</packaging>

<dependencies>
    <dependency>
        <groupId>x</groupId>
        <artifactId>my-dependency</artifactId>
        <version>1.0.0</version>
    </dependency>

    <dependency>
        <groupId>com.github.javaparser</groupId>
        <artifactId>javaparser-core</artifactId>
        <version>3.15.12</version>
    </dependency>
    <dependency>
        <groupId>org.apache.maven.plugin-tools</groupId>
        <artifactId>maven-plugin-annotations</artifactId>
        <version>3.6.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-plugin-api</artifactId>
        <version>3.6.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-core</artifactId>
        <version>3.6.3</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-plugin-plugin</artifactId>
            <version>3.6.0</version>
        </plugin>
    </plugins>
</build>
</project>

最佳答案

不幸的是,我还没有找到我的问题的正确答案,现在似乎不可能将 Maven 插件添加到 Github 包中。
但是我发现了一个使用 S3 作为存储库后端的解决方法,因此您不需要像 Nexus 或 JFrog 这样的重量级解决方案。您可以阅读thisthis关于如何去做。

关于java - 如何将 maven 插件上传到 Github 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61136940/

相关文章:

java - Maven安装但不会执行

java - maven依赖版本冲突

Java -server 标志和编译

java - 从 Object 到 Object[] 的转换

maven - 如何使用 Maven 提升集成构建

java - 自动部署到sonatype的oss maven仓库

java - Maven 生成源/注释

android - 无法发布 Artifact 'xxx.aar' (xxx.aar),因为它不存在

java - Spring 3.0 MVC :Redirect without parameters being added to my url

Java 8 - 在字符串流上不同 - IllegalStateException