0

在互联网上有很多关于如何/是否可以将二进制文件部署到 Maven Central 的相互矛盾的信息。因为我想避免将它们隐藏在 JAR 中,所以我找到了建议使用 POM 目标然后使用 codehaus 插件来部署所需二进制文件的指南:

<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>
    <packaging>pom</packaging>
    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.8</version>
                <executions>
                    <execution>
                        <id>attach-artifacts</id>
                        <phase>package</phase>
                        <goals>
                            <goal>attach-artifact</goal>
                        </goals>
                        <configuration>
                            <artifacts>
                                <artifact>
                                    <file>mybinary.so</file>
                                    <type>so</type>
                                </artifact>
                            </artifacts>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

我使用以下 ANT 任务上传二进制文件:

<target name="stage" depends="" description="deploy release version to Maven staging repository">
    <artifact:mvn>
        <arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file" />
        <arg value="-Durl=${ossrh-staging-repository-url}" />
        <arg value="-DrepositoryId=${ossrh-server-id}" />
        <arg value="-DpomFile=pom.xml" />
        <arg value="-Dfile=mybinary.so" />
        <arg value="-Pgpg" />
    </artifact:mvn>
</target>

当我运行任务时,我可以看到我的二进制上传和 SUCCESS 返回消息,但是当我登录并检查 OSS 控制面板时,我的上传只包含 POM 文件。

有什么线索吗?有成功案例吗?最后为什么这么难,对我来说,在 pypi 之后,Ivy 已经太复杂了,但 Maven 似乎更糟糕。

4

0 回答 0