7

我有在 Maven 中央存储库中找不到的 jar 文件。我想添加 jar,这样我就可以在我的pom.xml文件中包含额外的标签,其他开发人员可以使用该 jar。将 jar 上传到 http webserver webfolder 需要哪些步骤?我应该在旁边上传什么文件custom.jar?web文件夹中还需要与哪些其他文件并排存在custom.jar

4

3 回答 3

8

如果您已经设置了指向 Web 文件夹的 Web 服务器,那么部署自定义 JAR 的一种简单方法是使用deploy:deploy-fileMojo。如Maven 部署插件的使用页面中所述:

deploy:deploy-filemojo 主要用于部署不是由 Maven 构建的工件。项目的开发团队可能会也可能不会为工件提供 POM,并且在某些情况下,您可能希望将工件部署到内部远程存储库。部署文件 mojo 提供了涵盖所有这些用例的功能,并为动态生成 POM 提供了广泛的可配置性。此外,您可以指定存储库使用的布局。部署文件 mojo 的完整使用说明可以描述为:

mvn deploy:deploy-file -Durl=file://C:\m2-repo \
                       -DrepositoryId=some.id \
                       -Dfile=your-artifact-1.0.jar \
                       [-DpomFile=your-pom.xml] \
                       [-DgroupId=org.some.group] \
                       [-DartifactId=your-artifact] \
                       [-Dversion=1.0] \
                       [-Dpackaging=jar] \
                       [-Dclassifier=test] \
                       [-DgeneratePom=true] \
                       [-DgeneratePom.description="My Project Description"] \
                       [-DrepositoryLayout=legacy] \
                       [-DuniqueVersion=false]

只有前 3 个参数是强制性的(短版)。如果您想知道repositoryId是什么,Mojo 的文档说:

在大多数情况<id><server>settings.xml需要此参数进行身份验证。默认值为:远程存储库。

换句话说,最简单的使用方法是在托管 Web 服务器的机器上复制您的自定义 JAR,并file://在指定 URL 时使用协议。无需额外设置。如果您想远程部署,那么scp://通常是首选协议(还有其他协议,但这个很容易设置)。下面是一个使用 scp 的示例:

mvn deploy:deploy-file -DgroupId=my.group -DartifactId=myartifact -Dversion=1.0 \
  -DgeneratePom=true \
  -Dpackaging=jar \
  -Dfile=custom.jar \
  -DrepositoryId=some.id \
  -Durl=scp://REMOTEMACHINE/PATH/TO/WEB_ROOT/maven2_repository

实际上,使用 Web 服务器来托管您自己的 Maven 存储库是非常好的,但初始化可能会有点痛苦。解决此问题的一种解决方案是使用 Maven 代理(例如Nexus),而不仅仅是 Maven 存储库。但这超出了你的问题。

有关这方面的更多资源,请检查(即使实施解决方案有点过时,这些原则仍然有效):

于 2009-12-16T21:20:28.747 回答
1

最好,您需要一个本地 Maven 存储库。一种选择是Nexus

或者,如果您只是自己工作,您可以节省开销并将 jars 放在您机器上的存储库中 - 在home/.m2/repository适当的文件夹中

于 2009-12-16T07:21:57.020 回答
1

Next 命令有助于将 jar 安装到本地存储库。在此之后,您可以将带有 jar 的文件夹从本地上传到远程存储库。

mvn install:install-file \
  -DgroupId=com.name \
  -DartifactId=aaaa-bc \
  -Dversion=1.0 \
  -Dpackaging=jar \
  -Dfile=aaaa-bc.jar \
  -DcreateChecksum=true
于 2009-12-16T07:54:37.750 回答