将jar上传到存储库

com*_*tta 6 java maven-2 jar maven

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

Pas*_*ent 7

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

deploy:deploy-file魔咒主要用于文物部署于未通过的Maven构建.项目的开发团队可能会也可能不会为工件提供POM,在某些情况下,您可能希望将工件部署到内部远程存储库.deploy-file mojo提供涵盖所有这些用例的功能,并提供广泛的可配置性,以便即时生成POM.此外,您可以指定存储库使用的布局.deploy-file 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]
Run Code Online (Sandbox Code Playgroud)

只有3个第一个参数是强制性的(短版本).如果你想知道repositoryId是什么,Mojo的文档说:

要映射到<id><server>部分的服务器标识settings.xml在大多数情况下,验证时需要此参数.默认值为:remote-repository.

换句话说,最简单的方法是在托管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
Run Code Online (Sandbox Code Playgroud)

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

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