Maven 专题
目录:
Maven的安装
Eclipse安装Maven插件
Nexus私服搭建
Maven+Nexus配置
发布自己的构件(至Nexus)
创建maven多模块工程group
整理中[...]
先放一个概要图:

Maven的安装
Eclipse安装Maven插件
Nexus私服搭建
1)下载、安装(最新的Nexus需要jdk1.7及以上)
2)配置Nexus
a)安全性设置
b)仓库配置(Repository)
如下图:

从上图可知,仓库分成proxy、hosted、group等几类。
proxy可以理解为代理库,例如Central中央仓库,Nexus从中央仓库拉下jar包,作为二级缓存方便团队实用。

如上图,设置Download Remote Indexes会从中央仓库下载索引文件(lucene索引),团队开发时从该索引中检索jar包,下载后保存在
http://localhost:8081/nexus/content/repositories/central/
其他连个proxy仓库也可以打开Download Remote Indexes。
对于group类型的Public Repositories可以理解为是多个仓库的合集,如图:

Maven+Nexus配置
修改~/.m2/setting.xml
如下:(摘抄自http://blog.linguofeng.com/archive/2012/08/10/maven-nexus-install.html)
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <!-- 配置central镜像地址为本地仓库,加速索引速度 -->
<mirrors>
<mirror>
<id>central</id>
<mirrorOf>central</mirrorOf>
<name>central</name>
<url>http://127.0.0.1:8081/nexus/content/repositories/central</url>
</mirror>
</mirrors> <!-- 配置发布仓库,第一个为正式版仓库,第二个为快照版仓库。 -->
<profiles>
<!-- 执行:$ mvn release:prepare 命令时会打包并发布到该仓库。 -->
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>nexus</id>
<name>local private nexus</name>
<url>http://127.0.0.1:8081/nexus/content/groups/public</url>
</repository>
</repositories>
</profile>
<!-- 执行:$ mvn deploy 命令时会打包并发布到该仓库。 -->
<profile>
<id>nexus-snapshots</id>
<repositories>
<repository>
<id>nexus-snapshots</id>
<name>local private nexus snapshots</name>
<url>http://127.0.0.1:8081/nexus/content/groups/public-snapshots</url>
</repository>
</repositories>
</profile>
</profiles> <!-- servers节点的属性是在向仓库发布时使用 -->
<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers> <!-- 激活配置 -->
<activeProfiles>
<activeProfile>nexus</activeProfile>
<activeProfile>nexus-snapshots</activeProfile>
</activeProfiles>
</settings>
Eclipse中队Maven User Settings进行配置,如图:

Update Settings,然后就快在Maven项目中引入依赖。

如果是第一次加载,Nexus将从中央仓库下载,下载完毕后可以在
http://localhost:8081/nexus/content/groups/public/org/springframework/spring-core/
下找到相应的spring-core文件。

发布自己的构件(至Nexus)
配置settings.xml
<servers>
<server>
<id>releases</id>
<username>admin</username>
<password>***</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>***</password>
</server>
</servers>
在项目pom.xml文件中添加:
<distributionManagement>
<repository>
<id>releases</id>
<name>Nexus Release Repository</name>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
必须保证:settings.xml和pom.xml中id是一一对应的。
然后mvn deploy即可。
在Nexus中可以search到自己的构件:

在配置的仓库中也可以找到具体文件的位置:
http://localhost:8081/nexus/content/repositories/snapshots/cn/fox/test/

创建maven多模块工程group
1)先创建父工程
创建一个maven工程(Maven project,选择quickStart),除了pom.xml文件其他都删掉,然后修改pom.xml。
将<packaging>jar</packaging>修改成<packaging>pom</packaging>。
如果提示有错,用maven-》update project。
2)创建子模块
创建一个maven模块(Maven module)。
父工程的pom文件自动添加了以下内容:
<modules>
<module>children1-demo</module>
</modules>
3)优化、调整配置
父子项目有继承关系,如果子项目的一些属性都一样,可以上移到父项目中设置,子项目无需重复设置。
还有几个注意点:
统一指定版本号 <properties>
统一依赖管理 <dependencyManagement>
统一插件管理 <pluginManagement>
相关参考资料
http://juvenshun.iteye.com/blog/349534 [Nexus入门指南]
----------------------------------------------------
1.从svn中迁出maven项目
a)从svn资源库“迁出”(指定的workspace)
b)import-》Existing Maven Projects
上传java项目时忽略eclipse项目配置文件(.settings/.classpath/.project/target等) (svn ignore)
Maven 专题的更多相关文章
- 【IntelliJ IDEA学习之七】maven专题
版本:IntelliJIDEA2018.1.4 一.maven全局设置 设置Runner 运行VM参数:-Xms128m -Xmx512m -Duser.language=zh -Dfile.enco ...
- Maven专题
Maven 教程之 settings.xml 详解
- Maven 专题(八):配置(一)常用修改配置
修改配置文件 通常我们需要修改解压目录下conf/settings.xml文件,这样可以更好的适合我们的使用. 此处注意:所有的修改一定要在注释标签外面,不然修改无效.Maven很多标签都是给的例子, ...
- Maven 专题(七):常用命令
mvn archetype:generate : 反向生成项目的骨架 mvn clean: 清除各个模块target目录及里面的内容 mvn compile: 静态编译,根据xx.java生成xx.c ...
- Maven 专题(六):Maven核心概念详解(二)
5 仓库 5.1 分类 [1]本地仓库:为当前本机电脑上的所有 Maven 工程服务.[2]远程仓库: (1)私服:架设在当前局域网环境下,为当前局域网范围内的所有 Maven 工程服务 ...
- Maven 专题(五):Maven核心概念详解(一)
**Maven 的核心程序中仅仅定义了抽象的生命周期,而具体的操作则是由 Maven 的插件来完成的.**可是 Maven 的插件并不包含在 Maven 的核心程序中,在首次使用时需要联网下载. 下载 ...
- Maven 专题(四):什么是Maven
1 Maven 简介 Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目构建和 依赖管理.Maven 这个单词的本意是:专家,内行.读音是['meɪ ...
- Maven 专题(三):为什么要用Maven
1 真的需要吗? Maven 是干什么用的?这是很多同学在刚开始接触 Maven 时最大的问题.之所以会提出这个问题, 是因为即使不使用 Maven 我们仍然可以进行 B/S 结构项目的开发.从表述层 ...
- Maven 专题(二):vscode 创建一个java Maven项目(vscode)以HdfsClientDemo 为例
1.打开vs code软件,最好创建好自己的工程并使用vs code打开 2. 使用快捷键ctrl + shift + p按键,输入maven进行搜索,选中如图诉讼hi的create mavene ...
随机推荐
- SQLAlchemy中表结构的一对一
1.先导入相对应的库 from flask import Flask from flask_sqlalchemy import SQLAlchemy import pymysql pymysql.in ...
- TLS编程
最近测试广州电信的电话会议平台,该平台接入采用HTTPS协议,于是有了本文.09年培训时写过一个简单的TLS C/S结构交互,采用openssl的ssl相关接口,但与生产相去胜远.本文采用openss ...
- 2017java文本文件操作(读写操作)
java的读写操作是学java开发的必经之路,下面就来总结下java的读写操作. 从上图可以开出,java的读写操作(输入输出)可以用“流”这个概念来表示,总体而言,java的读写操作又分为两种:字符 ...
- sscanf 与 ssprintf 用法 (转载--https://www.cnblogs.com/Anker/p/3351168.html)
sprintf函数 sprintf函数原型为 int sprintf(char *str, const char *format, ...).作用是格式化字符串,具体功能如下所示: (1)将数字变量转 ...
- HDU 2036 叉乘求三角形面积
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s) ...
- python django day 5 database 1
from django.db import models class Blog(models.Model): name = models.CharField(max_length=) tagline ...
- C++学习(十九)(C语言部分)之 指针3
复习1.一级指针 int*p 指向int的指针 赋值 int x; p=&x;// *p=2; 指针指向的谁 解引用之后就是谁2.内存四区 堆区 需要自己手动申请内存 自己释放 (malloc ...
- IP、端口号、MAC
1.端口 端口是TCP/IP协议簇中,应用层进程与传输层协议实体间的通信接口.端口是操作系统可分配的一种资源:应用程序通过系统调用与某端口绑定后,传输层传给改端口的数据都被相应进程接收,相应进程发给传 ...
- 诡异的磁盘空间100%报警分析得出df -h与du -sh的根本性差别
前言:早晨磁盘报警刚清空完tomcat和nginx日志,使用的命令是类似echo "" > show_web-error.log或者> show_web-debug.l ...
- MongoDB之 写安全(Write Concern)
MongoDB Write Concern,简称MongoDB写入安全机制,是一种客户端设置,用于控制写入安全的级别.Write Concern 描述了MongoDB写入到mongod单实例,副本集, ...