1: 搭建步骤
搭建的详细步骤 参考
http://longzhun.iteye.com/blog/1745394
2. 用管理员登录,新增自己的账号并分配权限。
配置依赖的 settings.xml 文件(参考附件 settings.xml)
3. 搭建 根 Maven 服务工程(com-root)
com-root 工程的 pom.xml 样例:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sunny</groupId>
<artifactId>sunny-root</artifactId>
<version>0.0.1</version>
<packaging>pom</packaging>
<modules>
<module>sunny-manager</module>
</modules>
</project>
<properties>
<servlet.version>2.5</servlet.version>
<jsp.version>2.1</jsp.version>
</properties>
<dependencies>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<exclusions>
<exclusion>
<artifactId>jms</artifactId>
<groupId>javax.jms</groupId>
</exclusion>
<exclusion>
<artifactId>mail</artifactId>
<groupId>javax.mail</groupId>
</exclusion>
<exclusion>
<artifactId>jmxri</artifactId>
<groupId>com.sun.jmx</groupId>
</exclusion>
<exclusion>
<artifactId>jmxtools</artifactId>
<groupId>com.sun.jdmk</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.6</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>5.12.1</version>
<type>jar</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>${servlet.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>${jsp.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release</name>
<url>http://192.168.1.251:8081/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Release</name>
<url>http://192.168.1.251:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
</project>
4. pom文件主要元素说明:
dependencyManagement
Maven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式。通常会在一个组织或者项目的最顶层的父POM 中看到dependencyManagement 元素。使用pom.xml 中的dependencyManagement 元素能让
所有在子项目中引用一个依赖而不用显式的列出版本号。Maven 会沿着父子层次向上走,直到找到一个拥有dependencyManagement 元素的项目,然后它就会使用在这个dependencyManagement 元素中指定的版本号。
这样做的好处就是:如果有多个子项目都引用同一样依赖,则可以避免在每个使用的子项目里都声明一个版本号,这样当想升级或切换到另一个版本时,只需要在顶层父容器里更新,而不需要一个一个子项目的修改 ;另外如果某个子项目需要另外的一个版本,只需要声明version就可。
dependencies
相对于dependencyManagement,所有声明在dependencies里的依赖都会自动引入,并默认被所有的子项目继承。
distributionManagement
mvn install 会将项目生成的构件安装到本地Maven仓库,mvn deploy 用来将项目生成的构件分发到远程Maven仓库。本地Maven仓库的构件只能供当前用户使用,在分发到远程Maven仓库之后,所有能访问该仓库的用户都能使用你的构件。
我们需要配置POM的distributionManagement来指定Maven分发构件的位置,如下:
xml代码
<project>
...
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release</name>
<url>http://192.168.1.251:8081/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Release</name>
<url>http://192.168.1.251:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
</project>
Maven区别对待release版本的构件和snapshot版本的构件,snapshot为开发过程中的版本,实时,但不稳定,release版本则比较稳定。Maven会根据你项目的版本来判断将构件分发到哪个仓库。
分享到:
相关推荐
何为Maven 构建,依赖管理,项目信息聚合 Maven核心概念 坐标,依赖,仓库,生命周期,插件 Maven最佳实践 创建、打包、发布、版本管理 项目实战 Nexus(Todo…) M2eclipse(Todo…)
maven实践
maven入门使用,很详细. 本文档介绍一些在使用Maven过程中不是必须的,但十分有用的实践。
本文档内容讲述maven的原理及其最佳的实践方式
Maven实践-使用Maven开发Web应用 Maven实践-使用Maven开发Web应用 Maven实践-使用Maven开发Web应用
Maven原理与实践(高级)
附件为在阅读Maven实战时为依赖的最佳实践进行总结而输出的博客。一面加深理解,也希望能帮助需要的人
Maven 应用实践 ,介绍Maven应用与 nexus私服的搭建,以及自动化部署的应用
Maven版的JPA最佳实践 参考教程:http://www.cnblogs.com/ctoroad/p/4111447.html
dependencyManagement 是表⽰依赖 jar 包的声明,即你在项⽬中的 dependencyManagement 下声明了依赖,maven 不会加 载该依赖,dependencyManagement 声明可以被继承。 dependencyManagement 的⼀个使⽤案例是当有⽗...
maven window下安装包 易学笔记-maven教程目录 第1章:Maven概述/1.1 Maven的概念 第1章:Maven概述/1.2 Maven的功能 第1章:Maven概述/1.3 与其它构建相比/1.3.1 Make 第1章:Maven概述/1.3 与其它构建相比/1.3.2...
maven学习文档和实践操作
作为apache组织中的一个颇为成功的开源项目,maven主要服务于基于 java平台的项目构建、依赖管理和项目信息管理。 maven能干什么 使项目构建构成更容易; 提供统一构建系统(编译、测试、持续整合...); 提供高质量...
Maven原理及使用 涵盖Maven基础概念,实践,Eclipse插件使用
笔者自己总结各种资料,提供给公司实习生所用的maven学习文档。
Maven原理和实践-培训课件
Maven原理与实践[汇编].pdf
这压缩包里包含文档和PPT以及具体的实践,会对不懂maven有很大的帮助的。
博文链接:https://juvenshun.iteye.com/blog/249189