`
uule
  • 浏览: 6353025 次
  • 性别: 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离线安装包(含环境配置文件)

    总结,这个"Maven离线安装包(含环境配置文件)"提供了一种便捷的方式,使得开发者即使在无网络环境下也能搭建和使用Maven环境。它简化了Maven的安装过程,同时方便了Eclipse用户的集成工作,提高了开发效率。无论你...

    Maven安装与配置

    - **conf** 目录:包含了Maven的主要配置文件`settings.xml`。 其中`settings.xml`文件非常重要,它定义了Maven的一些关键配置项,如本地仓库的位置等。 - **默认的用户本地仓库**:`${user.home}/.m2/repository`...

    maven项目配置文件详细步骤

    ### Maven项目配置文件详解 #### 一、Maven简介与应用场景 Maven 是一个非常流行的 Java 项目的构建管理工具,它通过一系列规范化的标准来帮助开发者实现项目的构建、依赖管理和项目信息管理等功能。Maven 的核心...

    maven环境变量配置教程

    Maven的配置文件`settings.xml`位于`%M2_HOME%\conf`目录下,这个文件可以个性化设置Maven的行为,如本地仓库位置、远程仓库地址、镜像配置等。你可以根据需要修改这些设置。 对于企业开发,可能需要在团队间共享`...

    maven 配置注意事项

    接下来,修改Maven的配置文件`settings.xml`,它位于`Maven安装目录/conf`下。这个文件包含了Maven的全局配置信息。你需要修改`localRepository`标签来指定本地仓库的位置,例如`D:\Program Files\apache-maven-...

    Win10 环境下Apache Maven的配置文件以及教程

    以下是对Maven配置文件的详细说明以及如何在Win10系统中进行配置的教程。 1. Maven的安装 首先,你需要从Apache官方网站下载最新版本的Maven。下载完成后,解压到你选择的目录,例如`C:\Program Files\Apache\maven...

    maven3.3.9个和maven配置步骤

    1. **配置 Maven 配置文件**:Maven 的主要配置文件是 `conf/settings.xml`。在这里,你可以定义本地仓库路径、远程仓库地址、代理服务器等信息。 2. **本地仓库**:默认情况下,Maven 会将下载的依赖存放在用户主...

    maven与eclipse配置详解(含maven)

    总结来说,配置Maven到Eclipse的过程主要包括Maven的安装、环境变量配置、Eclipse中M2E插件的安装、Maven设置的配置以及创建和管理Maven项目。正确配置后,开发者可以在Eclipse这个熟悉的环境中享受到Maven带来的...

    maven本地仓库(含配置文件)

    `settings.xml`是Maven的全局配置文件,通常位于`%M2_HOME%\conf`目录下。这个文件可以用来配置Maven的本地仓库路径、远程仓库、镜像设置、用户凭据等。例如,要更改本地仓库位置,可以在`settings.xml`中添加以下...

    maven 环境搭建总结

    - **设置settings.xml**:这是Maven的重要配置文件,位于 `$MAVEN_HOME\conf\settings.xml`,用于指定本地仓库位置等信息。 - **本地仓库位置**:可以通过以下方式设置本地仓库的位置。 ```xml &lt;localRepository&gt;...

    maven 3.8.1版本私服配置版本

    Maven 3.8.1版本的私服配置涉及到多个Maven配置文件部分,包括`settings.xml`中的服务器、镜像和profiles。正确配置后,Maven将自动从你的内部仓库获取依赖,同时也能方便地将项目发布到私服,便于团队内部共享和...

    maven web项目配置

    3. src/main/resources:资源文件目录,存放非编译代码,如配置文件、图片等。 4. src/main/webapp:Web应用目录,存放HTML、CSS、JavaScript、JSP、Servlet等Web相关文件。 5. src/test/java:测试代码目录,存放...

    maven 配置多仓库

    在用户目录下的`.m2\settings.xml`文件中,我们可以配置`&lt;mirrors&gt;`(镜像)、`&lt;profiles&gt;`(配置文件)和`&lt;servers&gt;`(服务器认证信息)。这种方式会全局生效,适用于所有项目。 - ****:配置镜像,Maven会优先...

    Maven安装与配置的详细步骤

    总结来说,Maven简化了Java项目的构建和管理,通过POM.xml文件,可以自动化处理依赖关系,确保构建的一致性和可重复性。了解并熟练掌握Maven的安装、配置和使用,对于Java开发者而言,是提高工作效率和协作能力的...

    maven第三方仓库配置

    为了更好地管理这些依赖,可以修改Maven的配置文件`settings.xml`,指定一个新的本地仓库位置。例如,在`settings.xml`中添加如下配置: ```xml &lt;localRepository&gt;D:\ProgramFiles\maven3\repository ``` #### 三...

    maven 过滤文件夹打包

    总结来说,"maven 过滤文件夹打包"是利用Maven的资源过滤和插件配置功能,确保在不同环境下打包的项目包含正确的配置文件。这一方法提高了开发效率,降低了手动管理配置文件的出错概率,是Java项目部署中常见且重要...

Global site tag (gtag.js) - Google Analytics