当前位置: 首页 > 面试题库 >

如何使用Maven仅签名三个罐子并将它们推到Maven Central?

鲁城
2023-03-14
问题内容

更新:请参阅后续问题

我有一个Java库,其构建过程完全用Ant编写。该项目的沙箱(源代码,我在其中编辑代码)是

R:\jeffy\programming\sandbox\xbnjava\

其构建(输出)目录为

R:\jeffy\programming\build\xbnjava-0.1.1\

这是我的目标是:

  1. ant cleanpublish:从头开始构建项目,包括创建这三个jar

    • mylibrary-0.1.1.jar
    • mylibrary-0.1.1-sources.jar
    • mylibrary-0.1.1-javadoc.jar

被放入

    R:\jeffy\programming\build\xbnjava-0.1.1\download

这部分已经完成并且运行良好。这三个罐子是Maven Central
所要求的(向上滚动一点即可看到它)。

  1. 将版本检入GitHub并将构建目录上载到我的Web服务器。我也已经完成了这一步。

  2. mvn deploy唯一 需要做的就是在三个罐子上签名并将它们推到Maven Central。这是我存在的当前祸根。

这些是我到目前为止所采取的步骤:

  1. 以sonatype 设置我的项目,
  2. 使用gpg4win 创建了我的公钥(有关sonatype的相关文档)
  3. 下载并安装了Maven
  4. 设置我 希望 是正确的settings.xml
    <?xml version="1.0" encoding="UTF-8"?>
    

    xmlns="http://maven.apache.org


问题答案:

如果要在Maven之外构建工件,则需要在.pom文件中引用它们。

首先,将packaging项目的设置为,pom以便Maven不会尝试编译任何内容。

然后使用build-helper-maven-plugin将您的工件文件附加到项目。这是一个例子:

    <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>build/xbnjava-0.1.1/download/mylibrary-0.1.1.jar</file>
                            <type>jar</type>
                        </artifact>
                        <artifact>
                            <file>build/xbnjava-0.1.1/download/mylibrary-0.1.1-javadoc.jar</file>
                            <type>jar</type>
                            <classifier>javadoc</classifier>
                        </artifact>
                        <artifact>
                            <file>build/xbnjava-0.1.1/download/mylibrary-0.1.1-sources.jar</file>
                            <type>jar</type>
                            <classifier>sources</classifier>
                        </artifact>
                    </artifacts>
                </configuration>
            </execution>
        </executions>
    </plugin>

最后,distributionManagement按照此处的指定,将其添加到您的.pom文件中。

您可以在github上参考我自己的Maven项目设置,该项目的创建是为了在Maven Central上载手动构建的.jar文件。



 类似资料:
  • 更新:见后续问题 我有一个Java库,它的构建过程完全是用蚂蚁编写的。项目的沙盒(我编辑代码的源代码目录)是 它的构建(输出)目录是 这就是我的目标: > 它们被放置在 这部分已经完成,效果很好。这三个罐子是Maven Central所需的(向上滚动一点即可查看)。 将版本签入GitHub并将构建目录上载到我的web服务器。我也完成了这一步。 :唯一需要做的就是签署三个JAR并将其推送到Maven

  • 我对Java还很陌生,在将应用程序导出到可运行的JAR时遇到了麻烦。我的应用程序使用Saxon运行一些转换,我希望样式表可以放在可运行的JAR中。 我在src下创建了一个子文件夹,并将所有样式表放入其中。我访问它们的方式如下: 如果我在eclipse中运行它,一切工作都很好。当我将它导出为可运行的jar并运行它时,我会得到以下异常: 线程“main”java.lang.Reflect.Invoca

  • 我正在阅读这个关于JWTs的博客,以及如何使用它的签名部分来验证令牌是否确实是由受信任方颁发的。 https://hackernoon.com/json-web-tokens-jwt-demystified-f7e202249640 JSON Web Key(JWK)是一个JSON对象,其中包含一个众所周知的公钥,可用于验证签名的JWT的签名。 如果JWT的颁发者使用非对称密钥对JWT进行签名,那

  • 在运行Java8和Gradle6.3的Linux机器上,我需要构建一个由库混合而成的fat jar,一些库来自Maven Central,其他库来自位于存储库根部的本地目录,以及我的和: 运行和之后,如果我可以看到JAR中没有包含任何依赖项。 我的最终目标是使我的项目可执行为。我该怎么解决这个?

  • 在Maven项目中,我在同一个包中有测试类和源类,但在不同的物理位置。 访问测试类中的源类没有问题,但是我想在main方法中运行一个测试运行程序并访问,这样我就可以创建jar并执行我的测试。 但它不起作用,因为我没有访问测试代码的权限。我不明白,因为它们在同一个包裹里。 问题:如何从应用程序类访问测试类?或者,Maven如何打包一个包含测试类的胖jar并执行测试?

  • 我是Java初学者,目前正在寻找一种基于分隔符(.)将String拆分为子字符串的方法。理想情况下,我有一个句子,然后我想用HTML标记包装每个句子,即<code> 我使用类尝试了以下操作: 这给了一句话。我被困在这里,我也想把每个数字包装成一个句子。 我的字符串包含类似于: 输出应该是: 有可能实现这一点吗?