如何在maven中maven项目添加本地jarr包

发表于 1年前
&来自话题&&&·&
摘要:用eclipse怎样将本地的项目打成jar包上传到mevan仓库
使用maven的项目中,有时需要把本地的项目打成jar包上传到mevan仓库。
操作如下:
1、将maven 中的settings文件配置好用户名和密码,如下:
&&&&& &id&releases&/id&
&&&&& &username&admin&/username&
&&&&& &password&admin&/password&
&& &/server&
&/servers&
2、将需要打成jar的项目中的pom文件中配置上传的maven仓库路径:
&distributionManagement&
&&&&&&& &repository&
&&&&&&&&&&& &id&releases&/id&
&&&&&&&&&&& &name&Deploy Server&/name&
&&&&&&&&&&& &url&http://192.168.1.1:9000/nexus/content/repositories/thirdparty/&/url&
&&&&&&& &/repository&
&& &/distributionManagement&
3、在eclipse 中 run configuration中设置,如下图:
4、点击运行即可
提示,如果出现报错说未经授权,说明settings中的用户信息配置错误
后方可回复
如果没有账号可以
一个帐号。
回答数&0&·&文章数&11如何将 jar 包提交到 maven repository, 以便可以在 http://search.maven.org/ 搜索到, 或者 maven repository 的包管理有什么规则?
<dd style="float:cursor:" title="声誉值:
该问题被发起重新开启投票
投票剩余时间:
之前被关闭原因:
该问题被发起删除投票
投票剩余时间:
距离悬赏到期还有:
参与关闭投票者:
关闭原因:
该问题已经被锁定
锁定原因:()
保护原因:避免来自新用户不合宜或无意义的致谢、跟帖答案。
该问题已成功删除,仅对您可见,其他人不能够查看。
首先要有一个自己的网站,Maven的groupId要是该域名的反转形式,符合Java的命名规范,然后按照下面的地址描述一步一步做,就能提交成功。
https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide
Jar不需要提交到http://search.maven.org/里面的,可以自己在本地服务器上键个maven库,放将jar放里面,也可以直接在pom.xml中添加依赖,用到的开源包基本上以下repository都有的,我几个项目都用了,基本没出现有jar包读不到的情况:
&repository&
&id&java.downlad.maven.2&/id&
&url&http://download.java.net/maven/2&/url&
&/repository&
&repository&
&id&codehaus&/id&
&url&http://repository.codehaus.org/&/url&
&/repository&
&repository&
&id&jboss-repository&/id&
&url&http://repository.jboss.org/nexus/content/groups/public-jboss/&/url&
&/repository&
&repository&
&id&Apache iBiblio Mirror&/id&
&url&http://people.apache.org/repo/m2-ibiblio-rsync-repository/&/url&
&/repository&
&repository&
&id&Apache Incubator&/id&
&url&http://people.apache.org/repo/m2-incubating-repository/&/url&
&/repository&
&repository&
&id&bytecode&/id&
&url&http://maven.ala.org.au/repository&/url&
&/repository&
&repository&
&id&mandubian-mvn&/id&
&url&http://mandubian-/svn/trunk/mandubian-mvn/repository&/url&
&/repository&
&repository&
&id&terracotta-repo&/id&
&url&http://repo.terracotta.org/maven2&/url&
&/repository&
&repository&
&id&activiti&/id&
&url&/nexus/content/repositories/activiti&/url&
&/repository&
&repository&
&id&repository.springframework.maven.release&/id&
&name&Spring Framework Maven Release Repository&/name&
&url&http://maven.springframework.org/release&/url&
&/repository&
自己的项目需要打成jar包依赖其它开源包,自己的war项目再依赖自己打的包就好了,成树形结构
可以上传到maven服务器上,放到本地maven库的jar包只能自己使用,如果想让其他人也使用就上传到服务器上,这样maven在本地找不到jar包是就会去服务器进行下载。
不是您所需,查看更多相关问题与答案
德问是一个专业的编程问答社区,请
后再提交答案
关注该问题的人
共被浏览 (8494) 次maven是怎么判断包在本地仓库和远程仓库哪个是新的?
比如我本地更新了一个项目的jar包,然后install了,编译其它依赖这个项目不会用远程仓库的,而是使用本地的如果我把这个包提交到仓库,编译其它依赖这个项目会自动下载远程仓库到本地仓库maven是怎么判断本地仓库和远程仓库哪个jar包是新的?是用提交时间判断么?还是根据版本号判断的?谁能稍微详细的说一下么?谢谢
按投票排序
泻药maven对构件的更新判断基本上是两种,一种是稳定版本,一种是maven特有的SNAPSHOT版本。稳定版本很好判断,直接根据maven构件的坐标体系就能够获得。先从本地仓库中找,如果本地仓库没有,就从pom.xml和setting.xml配置的远程仓库来找。SNAPSHOT版本的判断比较麻烦,基本步骤如下:假设我在日09时40分52秒在我自己的电脑上使用 “mvn install” 构建了“com.mycompany.demo:test:1.0-SNAPSHOT”。那么Maven会在本地仓库目录“~/.m2/com/mycompany/demo/test/1.0-SNAPSHOT/”下生成文件“maven-metadata-local.xml”,内容如下:&?xml version="1.0" encoding="UTF-8"?&
&metadata modelVersion="1.1.0"&
&groupId&com.mycompany.demo&/groupId&
&artifactId&test&/artifactId&
&version&1.0-SNAPSHOT&/version&
&versioning&
&snapshot&
&localCopy&true&/localCopy&
&/snapshot&
&lastUpdated&52&/lastUpdated&
&snapshotVersions&
&snapshotVersion&
&extension&jar&/extension&
&value&1.0-SNAPSHOT&/value&
&updated&52&/updated&
&/snapshotVersion&
&snapshotVersion&
&extension&pom&/extension&
&value&1.0-SNAPSHOT&/value&
&updated&52&/updated&
&/snapshotVersion&
&/snapshotVersions&
&/versioning&
&/metadata&
十点钟的时候,其他同事更新了com.mycompany.demo:test:1.0-SNAPSHOT的内容,并通过 "mvn deploy" 发布到了公司的Maven服务器上。公司Maven服务器上产生了文件:
test-1.0-021-1.jar
test-1.0-021-1.pom并更新了maven-metadata.xml,内容如下:&?xml version="1.0" encoding="UTF-8"?&
&metadata modelVersion="1.1.0"&
&groupId&com.mycompany.demo&/groupId&
&artifactId&test&/artifactId&
&version&1.0-SNAPSHOT&/version&
&versioning&
&snapshot&
&timestamp&021&/timestamp&
&buildNumber&34&/buildNumber&
&/snapshot&
&lastUpdated&21&/lastUpdated&
&snapshotVersions&
&snapshotVersion&
&extension&jar&/extension&
&value&1.0-021-1&/value&
&updated&21&/updated&
&/snapshotVersion&
&snapshotVersion&
&extension&pom&/extension&
&value&1.0-021-1&/value&
&updated&28&/updated&
&/snapshotVersion&
&/versioning&
&/metadata&
在这期间我的电脑上没有发生过任何关于test的构建。某一天,我需要构建一个依赖于test的项目,于是我运行了mvn package来打包。这个时候,maven做了什么呢(背景:我通过配置镜像,使我本地Maven的任何资源都是从公司的Maven服务器下载的)?Step1:从公司的Maven服务器上下载maven-metadata.xml,重命名为“maven-metadata-&RepositoryID&.xml”,并保存到本地仓库相应目录。Step2:比较maven-metadata-local.xml与maven-metadata-&RepositoryID&.xml中的lastUpdated时间戳的值。
如果maven-metadata-local.xml中的时间戳比较大,则终止。
如果maven-metadata-&RepositoryID&.xml中的时间戳较大,则从公司Maven服务器上下载最新版本。即:testu-1.0.1-828-34.jar。这个过程分两步:(1)下载test-1.0-021-1.jar到本地Maven仓库。(2)将test-1.0-021-1.jar复制一份,覆盖掉原先的test-1.0-SNAPSHOT.jar。也就是说,如果Maven从远程仓库下载了最新的SNAPSHOT发布包的话,那么最新的待时间戳的包和xxx-SNAPSHOT包是完全一样的。
你查看nexus仓库会发现你每提交的构件都会加时间戳,maven以你指明版本的最新的那个获取。
第一次有人邀请,好激动。。在Centra和3rd party、Release仓库,每一个版本的jar包只有一个。但是在Snapshots仓库同一个版本的jar可以有很多个,但是每个jar都有不同的时间戳。这些jar是由mvn :deploy 命令生成的,每运行一次就会在仓库发布一个新的jar。当有别的项目依赖这个jar的时候,可以在install的时候加上参数-U来强制更新到最新时间戳的jar,不加参数不一定会更新,但是第一次install的一定会下载最新的jar。我的仓库昨天才搭建的,没有deploy过,就不贴图了
已有帐号?
无法登录?
社交帐号登录<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&

我要回帖

更多关于 maven pom添加本地jar 的文章

 

随机推荐