`
uule
  • 浏览: 6311179 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

Maven总结【含配置文件】

 
阅读更多

MAVEN手册

 

MAVEN的安装配置
MAVEN在Eclipse中如何配置

 

创建MAVEN工程:

新建 Maven Web项目(重要)

1、Maven笔记(四)– eclipse+tomcat构建web工程

2、maven 创建java项目, web项目

 

3、http://www.blogjava.net/bolo/archive/2011/05/23/349655.html

 

Maven简介(二)——使用Maven

http://haohaoxuexi.iteye.com/blog/1860128

maven入门配置:

http://blog.csdn.net/wm5920/article/details/8185677

maven常用命令:

http://www.cnblogs.com/adolfmc/archive/2012/07/31/2616908.html

 

maven核心,pom.xml详解

maven配置之POM

 

至于为什么要搭建自己的maven私服,原因有三个: 

1、maven自己的中央库访问速度比较慢,伟大的墙再一闹腾,会时断时续。

2、有些jar包由于版权原因,maven中央仓库没有,比如oracle JDBC驱动。另外也会有一些项目中用到的比较老的开源jar包, 中央仓库也没用。这种情况我们需要把jar包手动上传到私服。

3、公司自己开发的jar包并不开源,不能上传到maven中央仓库,只能部署到私服上面。

使用Nexus创建私服

Maven学习 (四) 使用Nexus搭建Maven私服

Maven私服问题汇总

 

 如果添加其他的构件时,会先在nexus私服下载好,以后才会下载到本地。以后,如果发现私服已经存在某一jar包,则会直接从私服下载,如果没有再去网络上下载。这就是搭建私服的好处。哈哈........

   

Eclipse Maven插件地址
【help】-【Install New Software…】
http://download.eclipse.org/technology/m2e/releases

 

EAR中可以包含WAR,JAR文件。

JAR文件可以将EJB包含其中。

WAR可以将WEB组件包含其中。

 

  Jar文件(扩展名为. Jar,Java Application Archive)包含Java类的普通库、资源(resources)、辅助文件(auxiliary files)等

  War文件(扩展名为.War,Web Application Archive)包含全部Web应用程序。在这种情形下,一个Web应用程序被定义为单独的一组文件、类和资源,用户可以对jar文件进行封装,并把它作为小型服务程序(servlet)来访问。

  Ear文件(扩展名为.Ear,Enterprise Application Archive)包含全部企业应用程序。在这种情形下,一个企业应用程序被定义为多个jar文件、资源、类和Web应用程序的集合。

  每一种文件(.jar, .war, .ear)只能由应用服务器(application servers)、小型服务程序容器(servlet containers)、EJB容器(EJB containers)等进行处理。

EAR文件包括整个项目,内含多个ejb module(jar文件)和web module(war文件)
Tips:

在建立war文件的时候,不用将源码也压缩到其中,把src目录移走即可。

 

仓库:

 

Maven dependency and repository :

http://blog.csdn.net/totogogo/article/details/1956381

maven settings.xml :

http://blog.csdn.net/totogogo/article/details/1946691

maven POM的中文参考手册 :

http://blog.csdn.net/totogogo/article/details/1942860

 Maven实战(九)——打包的技巧:

http://www.infoq.com/cn/news/2011/06/xxb-maven-9-package

 

1、为什么用Maven

在 不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文 件,如log4j.jar,junit.jar等等。每建立一个项目,你都需要建立这样的一个/lib目录,然后复制一对jar文件,这是很明显的重复。 重复永远是噩梦的起点,多个项目不共用相同的jar文件,不仅会造成磁盘资源的浪费 ,也使得版本的一致性管理变得困难。此外,如果你使用版本管理工具,如 SVN(你没有使用版本管理工具?马上试试SVN吧,它能帮你解决很多头疼的问题),你需要将大量的jar文件提交到代码库里,可是版本管理工具在处理二 进制文件方面并不出色。

Maven 仓库就是放置所有JAR文件(WAR,ZIP,POM等等)的地方,所有Maven项目可以从同一个Maven仓库中获取自己所需要的依 赖JAR,这节省了磁盘资源。此外,由于Maven仓库中所有的JAR都有其自己的坐标,该坐标告诉Maven它的组ID,构件ID,版本,打包方式等 等,因此Maven项目可以方便的进行依赖版本管理。你也不在需要提交JAR文件到SCM仓库中,你可以建立一个组织层次的Maven仓库,供所有成员使 用。

简言之,Maven仓库能帮助我们管理构件 (主要是JAR)。

 

2、本地仓库

运行Maven的时候,Maven所需要的任何构件都是直接从本地仓库获取的。如果本地仓库没有,它会首先尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。

比如说,你的项目配置了junit-3.8的依赖,在你运行mvn test 的时候,Maven需要使用junit-3.8的jar文件,它首先根据坐标查找本地仓库,如果找到,就直接使用。如果没有,Maven会检查可用的远程 仓库配置,然后逐个尝试这些远程仓库去下载junit-3.8的jar文件,如果远程仓库存在该文件,Maven会将其下载到本地仓库中,继而使用。如果 尝试过所有远程仓库之后,Maven还是没能够下载到该文件,它就会报错。

3、镜像

如果你的地理位置附近有一个速度更快的central镜像,或者你想覆盖central仓库 配置,或者你想为所有POM使用唯一的一个远程仓库 (这个远程仓库代理的所有必要的其它仓库),你可以使用settings.xml中的mirror配置 。

以下的mirror配置用maven.net.cn覆盖了Maven自带的central :

<settings>  
...  
  <mirrors>  
    <mirror>  
      <id>maven-net-cn</id>  
      <name>Maven China Mirror</name>  
      <url>http://maven.net.cn/content/groups/public/</url>  
      <mirrorOf>central</mirrorOf>  
    </mirror>  
  </mirrors>  
...  
</settings>

 这里唯一需要解释的是<mirrorOf> ,这里我们配置central的镜像,我们也可以配置一个所有仓库的镜像 ,以保证该镜像是Maven唯一使用的仓库:

<settings>  
...  
  <mirrors>  
    <mirror>  
      <id>my-org-repo</id>  
      <name>Repository in My Orgnization</name>  
      <url>http://192.168.1.46/maven2</url>  
      <mirrorOf>*</mirrorOf>  
    </mirror>  
  </mirrors>  
...  
</settings> 

 。。

来源:http://juvenshun.iteye.com/blog/359256

 

3、MAVEN与ANT的区别

 什么是Maven?

 Maven是一个项目管理工具,它包含:

 一个项目对象模型 (Project Object Model),

 一组标准集合,

 一个项目生命周期(Project Lifecycle),

 一个依赖管理系统(Dependency Management System), 用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

 

 构建工具:

把源代码构建成可发布的构件。包括预处理,编译,打包,测试和分发。

 项目管理工具:

生成报告,生成Web站点,并且帮助推动工作团队成员间的交流。

 

核心理念

 约定优于配置(Convention Over Configuration) 

 优点: 减少工作量。只要按约定去做,不需要做很多配置。

 缺点: 被迫接受特定的方法。 需要记住约定。

 

 Ant 和Maven 的主要区别

 

Ant

 Ant 没有正式的约定如一个一般构,你必须明确的告诉Ant 哪里去找源代码,哪里放置输出。随着时间的推移,非正式的约定出现了,但是它们还没有在产品中模式化。 

 Ant 是程序化的,你必须明确的告诉Ant 做什么,什么时候做。你必须告诉它去编译,然后复制,然后压缩。

 Ant 没有生命周期,你必须定义目标和目标之间的依赖。你必须手工为每个目标附上一个任务序列。

 

 Maven

 Maven 拥有约定,因为你遵循了约定,它已经知道你的源代码在哪里。它把字节码放到 target/classes ,然后在 target 生成一个 JAR 文件。

 Maven 是声明式的。你需要做的只是创建一个pom.xml 文件然后将源代码放到默认的目录。Maven会帮你处理其它的事情。

 Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。

 

 

================================================================================

自己项目中的配置文件:

1、Setting.xml:

见附件

 

 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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>himsNanHwa</groupId>
	<artifactId>himsNanHwa</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>

	<dependencies>
		<dependency>
			<groupId>javax</groupId>
			<artifactId>javaee-web-api</artifactId>
			<version>6.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>2.5.6</version>
		</dependency>	
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate</artifactId>
			<version>3.2.6.ga</version>
			<exclusions>
				<exclusion>
					<groupId>asm</groupId>
					<artifactId>asm</artifactId>
				</exclusion>
				<exclusion>
					<groupId>asm</groupId>
					<artifactId>asm-attrs</artifactId>
				</exclusion>
				<exclusion>
					<groupId>cglib</groupId>
					<artifactId>cglib</artifactId>
				</exclusion>
				<exclusion>
					<groupId>commons-collections</groupId>
					<artifactId>commons-collections</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		...		
	</dependencies>

	<build>
		<finalName>himsNanHwa</finalName>
		<sourceDirectory>src</sourceDirectory>
		<outputDirectory>WebRoot/WEB-INF/classes</outputDirectory>
		<resources>
			<resource>
				<directory>src</directory>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.3.2</version>
				<configuration>
					<source>1.5</source>
					<target>1.5</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<version>2.1.1</version>
				<configuration>
					<webappDirectory>WebRoot/</webappDirectory>
					<warSourceDirectory>WebRoot</warSourceDirectory>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

 

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  
  <parent>
    <groupId>com.esb</groupId>
    <artifactId>projects</artifactId>
    <version>2.1.0</version>
  </parent>
  
  <groupId>com.projects</groupId>
  <artifactId>com.bean</artifactId>
  <version>2.1.0</version>
  
  <name>com.bean</name>
  
  <packaging>jar</packaging>
  
  <dependencies>
  	<dependency>
  		<groupId>javax.persistence</groupId>
  		<artifactId>persistence-api</artifactId>
  		<version>1.0</version>
  		<scope>provided</scope>
  	</dependency>
  </dependencies>
</project>

 ..

 

分享到:
评论
1 楼 Dan_485 2012-05-10  
       

相关推荐

    Maven权威指南 很精典的学习教程,比ANT更好用

    总结 2. 安装和运行Maven 2.1. 验证你的Java安装 2.2. 下载Maven 2.3. 安装Maven 2.3.1. 在Mac OSX上安装Maven 2.3.2. 在Microsoft Windows上安装Maven 2.3.3. 在Linux上安装Maven 2.3.4. 在FreeBSD或...

    maven2 plugin for eclipse

    总结: 从中可以看到Maven的两个作用 1。管理library 包。在开发过程中我们回遇到这么一种情况,比如你建了 两个项目,一个为 project1 一个为project2 而这两个项目都用到一个jar 包。比如junit.jar 如果两个项目...

    J2EE JNDI配置原理详解 JBOSS安装配置 Maven入门 Ant使用入门

    1.3 Java事务处理总结 1.4 JavaBean中使用JDBC方式进行事务处理 1.5 JSP 隐式对象简介 1.6 Java解析XML的四种方法 1.7 struts1和truts2比较 1.8 Tomcat5启动流程与配置详解 1.9 HttpServlet详解 1.10 Ant使用...

    Maven安装本地仓库报错总结

    1.Java版本和Maven兼容问题,我置前一直用的都是Java13,maven装了3.6.3,一直不兼容。 2.本地仓库路径问题,在setting.xml配置里面,要注意本地仓库的路径:(直接鼠标右键创建一个就好,在路径里写你创的文件名) ...

    总结Linux系统环境初始化、系统安全加固措施和系统内核优化

    20. MAVEN 安装与配置 21. 命令行录屏软件 22. nodejs 安装与配置 23. 工具命令 24. elasticsearch 安装与配置 25. 进程管理 26. 文件系统管理 27. git 初始化本地仓库 28. Nacos 安装与配置 29. ruby 安装与配置 30...

    Spring集成MyBatis.docx

    六、创建mybatis主配置文件 七、创建Service接口和实现类,属性是dao 八、创建spring的配置文件 九、创建测试类 十、总结 将 MyBatis与 Spring 进行整合,主要解决的问题就是将 SqlSessionFactory 对象交...

    java重要知识点总结

    1.java是一种编译解释型的语言。...5.public类名必须跟java文件同名,且一个java文件中只能包括一个public类。 6.java注释: // 单行注释 /* */ 多行注释(不能嵌套) //* */ 文档说明注释 ...... .... .....

    Java–Mybatis搭建(XML方式)

    映射配置文件IUserDao.xml select * from user 创建实体类 package www; import java.io.Serializable; import java.util.Date; /** * @author guizimo * @date 2020/4/2 12:03 下午 */ public class User ...

    IntelliJ IDEA 简体中文专题教程

    15.Hello World 项目创建和项目配置文件讲解 16.版本控制讲解 17.实时代码模板讲解 18.文件代码模板讲解 19.Emmet 讲解 20.Postfix Completion 讲解 21.插件讲解 22.Eclipse 的 Java Web 项目环境搭建 23.Maven 项目...

    JavaEE-SpringMVC-云借阅图书管理系统(包含源码、数据库sql文件、报告)

    云借阅图书管理系统:全部源码打包。含有数据库sql文件,简单报告书介绍,通过课设验收。...注意:本项目使用IDEA中的Maven仓库功能,下载后需要修改IDEA中的Maven本地仓库地址,然后进行重新加载。

    RabbitMQ-Demo.zip

    Maven项目中使用RabbitMQ示例 使用到读取自定义配置文件。 可以正常运行。 主要是自己总结记录备忘。 如果能帮到需要的人,欢迎下载。

    mybatis-plus-demo.zip

    Maven项目中使用mybatis-plus操作mysql示例 使用到读取自定义配置文件。 可以正常运行。 主要是自己总结记录备忘。 如果能帮到需要的人,欢迎下载。

    2021全新SpringMVC教程

    10_SpringMVC_HelloWorld:配置springMVC配置文件.mp4 11_SpringMVC_HelloWorld:访问首页.mp4 12_SpringMVC_HelloWorld:访问指定页面.mp4 13_SpringMVC_HelloWorld:总结.mp4 14_SpringMVC_搭建框架.mp4 15_...

    20200215——Cms前端开发总结

    webpack配置文件,用来进行webpack的操作 main.js 是工程的入口,加载了许多第三方组件 关于页面路由 小项目的路由 最后都会集成到base/router import Vue from 'vue'; import Router from 'vue-router'; Vue.use...

    idea总结,超详细(png图片)

    一、常用配置1)、配置JDK 2)、配置maven 3)、编码配置 4)、容器配置 5)、配置git 初次创建项目的情况 已有项目在远程仓库的情况 二、建议修改 三、主题 1)、主题 2)、背景 3)、字体 4)、显示 四、快捷键 1...

Global site tag (gtag.js) - Google Analytics