2009-12-16 46 views
4

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

回答

7

如果你已经有了一个web服务器建立指着一个Web文件夹,一个简单的方法来部署自定义JAR将使用deploy:deploy-file魔。作为记录在Usage页面Maven的部署插件的:

deploy:deploy-file魔咒是用来 主要用于部署文物 这不是由Maven的构建。该项目 的开发团队可能会或可能不会 为神器, 一个POM和在某些情况下,你可能想 神器部署到内部 远程仓库。部署文件 mojo提供涵盖所有这些使用案例的功能,并提供 多种可配置性,用于 即时生成POM。 此外,您可以指定您的存储库使用的布局 。可谓部署文件 魔力的完整 用法语句为:

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是什么,魔的文件说:

服务器ID映射上的settings.xml<id><server>部分在大多数情况下,该参数将被要求进行身份验证。默认值是:remote-repository。

换句话说,使用这将是复制承载Web服务器的计算机上的自定义JAR和指定URL时使用的file://协议的最简单方法。没有额外的设置要求。如果你想远程部署,那么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仓库。但是这超出了你的问题。

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

1

最好,你需要一个本地的maven仓库。这其中的一个选项是Nexus

或者,如果你是刚刚工作的自己,你可以节省开销,把罐子在您的计算机上存储库 - home/.m2/repository下,在适当的文件夹

+0

如果我想要上传到http服务器,web文件夹,我需要在custom.jar文件夹中包含哪些其他文件?可以提供步骤? – cometta 2009-12-16 07:29:23

+0

好吧,我可以谷歌关于这个问题的一些教程。但最好是你这样做。我给了你一个有很多信息的链接。 – Bozho 2009-12-16 07:40:47

1

下一个命令有助于安装该jar到本地存储库。在此之后,您可以使用从本地到远程存储库的jar来上传文件夹。

mvn install:install-file \ 
    -DgroupId=com.name \ 
    -DartifactId=aaaa-bc \ 
    -Dversion=1.0 \ 
    -Dpackaging=jar \ 
    -Dfile=aaaa-bc.jar \ 
    -DcreateChecksum=true 
+0

我想在远程存储库中安装本地存储库 – cometta 2009-12-21 11:04:03