`

Maven 服务实践相关

阅读更多
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 是一个强大的项目管理和构建工具,它简化了Java应用程序的构建过程,通过一套约定优于配置的原则,使得项目构建、依赖管理和文档生成等工作变得标准化。以下是一些在使用Maven时可以...

    Maven原理和实践-培训课件.ppt

    何为Maven 构建,依赖管理,项目信息聚合 Maven核心概念 坐标,依赖,仓库,生命周期,插件 Maven最佳实践 创建、打包、发布、版本管理 项目实战 Nexus(Todo…) M2eclipse(Todo…)

    maven实践

    maven实践

    Maven原理与实践(高级)

    本文档内容讲述maven的原理及其最佳的实践方式

    Maven exec-maven-plugin:执行外部命令的实践指南

    Apache Maven是一个强大的项目管理工具,它提供了丰富的插件系统来扩展构建过程。exec-maven-plugin是Maven生态系统中的一个插件,它允许用户在Maven构建过程中执行外部命令或脚本。这使得Maven项目可以集成更多的...

    Maven原理与实践(高级).

    Maven原理与实践(高级)

    maven3.0 maven3.0

    ### Maven 3.0 的最佳实践 - **遵循约定优于配置的原则**:使用Maven的标准目录结构,减少POM的配置。 - **合理管理依赖**:避免硬编码版本号,使用`&lt;dependencyManagement&gt;`元素统一管理版本。 - **使用父POM**:...

    Maven实践-使用Maven开发Web应用

    本文将深入探讨如何利用Maven进行Web应用的开发实践。 首先,理解Maven的核心概念是至关重要的。Maven基于项目对象模型(Project Object Model, POM),它是一个XML文件,包含了项目的配置信息,如依赖、构建目标和...

    Maven原理与实践

    【Maven原理与实践】 Maven是一个基于Java的项目管理工具,它的主要作用在于简化软件项目的构建、管理和部署过程。Maven的核心理念是项目对象模型(Project Object Model,POM),一个XML格式的配置文件,它包含了...

    maven-wrapper-windows服务

    在`pom.xml`中,配置`exec-maven-plugin`插件来指定主类和相关参数。 4. **打包应用**:使用`mvnw package`命令打包你的应用,这将生成一个可执行的JAR或WAR文件。 5. **安装服务**:运行创建的服务脚本,将打包后...

    Maven版的JPA最佳实践

    **Maven版的JPA最佳实践** 在Java开发中,Maven作为项目构建工具,而JPA(Java Persistence API)则是用于对象关系映射(ORM)的标准,它们结合使用能够帮助开发者更高效地管理和操作数据库。本文将深入探讨在Maven...

    Storm编程实践(安装Maven-使用Maven编译运行代码-mvn 打包)

    Storm 编程实践(安装 Maven-使用 Maven 编译运行代码-mvn 打包) 本文档介绍了 Storm 编程实践的实践报告,涵盖了安装 Maven、使用 Maven 编译运行代码和 mvn 打包等内容。报告中还包括了实验环境的配置、实验内容...

    maven安装包和maven安装步骤

    记住,良好的Maven实践可以帮助你更好地组织项目结构,提高代码的可维护性和复用性。在实际开发中,不断学习和掌握Maven的高级特性,如 profiles、lifecycle、plugins 等,将使你的开发工作更加高效。

    Maven权威指南_maven_

    **Maven权威指南** 《Maven权威指南》是Java开发者...通过阅读《Maven权威指南》,开发者不仅能掌握Maven的基本使用,还能深入理解其背后的原理和最佳实践,从而在实际项目中发挥出Maven的最大价值,提升开发效率。

    maven 3.8.5 linux版本下载

    ### Maven的最佳实践 - 保持POM简洁清晰,避免过度配置。 - 使用统一的命名规则和版本控制策略。 - 利用Maven的 profiles 功能为不同的环境(如开发、测试、生产)创建不同的配置。 - 使用Maven的依赖管理,避免...

    apache-maven-3.5.0.rar

    10. **最佳实践**:Maven推动了Java社区的一套构建和项目组织的最佳实践,如约定优于配置的原则,使得新项目可以快速启动,遵循统一的标准。 总的来说,Apache Maven 3.5.0是Java开发中不可或缺的工具,它极大地...

    maven分模块小demo

    在软件开发过程中,Maven作为一个强大的项目管理和构建工具,被广泛...对于初学者而言,这是一个理解Maven工作原理和实践项目组织的良好起点。通过深入研究这个demo,开发者可以更好地掌握Maven在实际开发中的运用。

Global site tag (gtag.js) - Google Analytics