gpt4 book ai didi

java - 如何为应用程序、源代码和文档生成单独的 jar 文件(针对 central.sonatype.org)

转载 作者:搜寻专家 更新时间:2023-11-01 03:00:26 25 4
gpt4 key购买 nike

Sonatype 有一个存储库,我想将 jar 文件部署到该存储库,他们要求为应用程序、源代码和 javadoc 提供单独的文件:

例子:

example-application-1.4.7.pom
example-application-1.4.7.jar
example-application-1.4.7-sources.jar
example-application-1.4.7-javadoc.jar

在 Scala SBT 中,我有一个名为“package”的命令为项目生成 jar 文件,但它只生成“example-application-1.4.7.jar”。

问题:如何生成另外两个jar文件?

最佳答案

在 Maven 中,为了获得额外的 -sources-javadoc Artifact ,将以下内容添加到您的 POM 文件中:

<build>
<plugins>
<!-- additional plugin configurations, if any.. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.3</version>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

注意上面的片段:

执行

mvn clean package

您会在 target 文件夹中找到这两个额外的 jar。


.pom 文件是在install 阶段生成的,但它没有放在target 文件夹下。基本上,它是您的 pom.xml 文件的副本,具有不同的扩展名,并且在依赖中介过程中由 Maven 使用,以检查相关 Artifact 需要哪些传递依赖。

执行

mvn clean install

Maven 将在您的本地缓存(在您的机器中)中安装 Artifact ,位于 path_to_cache/.m2/repository/your_groupId/your_artifactId/your_version/ 下。在此文件夹中,您还会找到 .pom 文件,通常您不需要分发该文件(它由 Maven 自动创建)。


进一步注意:您可能不希望在每次构建时都生成这些额外的 jar 文件,因此为了加快正常构建并仅在需要时使用它们,您可以将上面的代码片段包装在 Maven profile 中。 .

您可以通过从 build 部分中删除上面的代码片段并在 pom 的末尾添加一个进一步的部分来实现此目的:

<profiles>
<profile>
<id>prepare-distribution</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.3</version>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>

这样正常的构建就不会再创建这些 jar 了,但是在执行以下命令时:

mvn clean install -Pprepare-distribution

相反,您会取回它们。 -P 选项实际上是按需激活用 id prepare-distribution 定义的配置文件。


对于 Maven 3,默认配置文件已经作为 super pom 的一部分出现了它们执行完全相同的操作(源代码和 javadoc Artifact ),因此无需向现有项目添加任何内容。只需运行:

mvn clean install -Prelease-profile

或者,通过属性激活它

mvn clean install -DperformRelease=true

但是,正如在 super pom 中也指定的那样,这个配置文件可能会在未来的版本中被删除(尽管从第一个 Maven 3 版本到版本 3.3.9 到目前为止)

NOTE: The release profile will be removed from future versions of the super POM

此警告背后的主要原因很可能是插入使用 Maven Release Plugin ,它通过 useReleaseProfile 间接使用此配置文件release:perform 的选项目标。


正如评论所强调的那样,如果您不熟悉 maven(尤其是通过控制台),我肯定会推荐

  • 通过官方Maven in 5 minutes快速但值得一看的文档。
  • 从命令行使用 Maven,Maven 是否可以为您提供最好的服务。 IDE 集成很棒,但命令行才是真正的转折点。
  • 然后使用上面的 POM 自定义,熟悉一些概念和行为,首先直接作为默认构建的一部分,然后移动到配置文件。
  • 然后,只有这样,移动到 Maven Release Plugin用法。我建议将其作为最后一步,因为您已经获得了更多的信心和理解,并将其视为不那么神奇而更合理的方法。

关于java - 如何为应用程序、源代码和文档生成单独的 jar 文件(针对 central.sonatype.org),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36210913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com