将jar上传到存储库

时间:2009-12-16 07:09:10

标签: java maven-2 jar maven

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

3 个答案:

答案 0 :(得分:7)

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

  

使用deploy:deploy-file mojo   主要用于部署工件   这些不是由Maven建造的。该   项目的开发团队可能或可能   没有为神器提供POM,   在某些情况下,你可能想要   将工件部署到内部   远程存储库。部署文件   mojo提供功能覆盖   所有这些用例,并提供了一个   广泛的可配置性   即时生成POM。   此外,您可以指定什么   存储库使用的布局。满满的   deploy文件的用法语句   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>的{​​{1}}部分<server>下映射的服务器ID,大多数情况下,验证都需要此参数。默认值为:remote-repository。

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

scp://

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

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

答案 1 :(得分:1)

最好,您需要一个本地maven存储库。一个选项是Nexus

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

答案 2 :(得分: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