在互联网上,关于如何/如何将二进制文件部署到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控件panel时,我的上传仅包含POM文件。
任何线索?有成功的故事吗?最后为什么这么难,对我来说,Ivy在pypi之后已经太复杂了,但是Maven看起来好多了。