`
ponlya
  • 浏览: 165416 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Maven 笔记

 
阅读更多

Maven 用于项目管理与构建。

它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(ProjectLifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

 

默认仓库定义及位置

~/.m2/settings.xml
该文件包含了用户相关的认证,仓库和其它信息的配置,用来自定义Maven的行为。
~/.m2/repository/
该目录是你本地的仓库。当你从远程Maven仓库下载依赖的时候,Maven在你本地仓库存储了这个依赖的一个副本。    

自带远程仓库地址:http://repo1.maven.org/maven2

 

Eclipse M2Eclipse maven插件

http://m2eclipse.sonatype.org/sites/m2e
http://eclipse.org/m2e/download/
http://download.eclipse.org/technology/m2e/releases/1.3/?d
   

mave坐标

groupId,artifactId, packaging, versionpackaging

默认为jar

 

作用范围

test : 只在运行compiler:testCompile和surefire:test等测试目标的时候才会被加入到classpath中

provided:依赖在编译的时候需要,但是它不应该被捆绑在构建的输出中,如Servlet API

 

命令

mvn -v   查看版本信息,需要配置M2_HOME,并将%M2_HOME%/bin添加到path中

mvn --help

mvn install    构建并打包

mvn install -X  调试标记运行,查看完整的依赖踪迹,会打印因为冲突或者其它原因而被拒绝引入的构件

mvn clean install 先清理,然后干净地构建
mvn help:effective-pom  展示Maven真正运行根据的POM,它包含一些默认配置mvn package 同   

mvn resources:resources \
        compiler:compile \
        resources:testResources \
        compiler:testCompile \
        surefire:test \
        jar:jarmvn site  生成文档和报告

mvn dependency:resolve  打印依赖的列表

mvn dependency:tree  同上,整个依赖树

mvn test 运行单元测试    test 目标执行项目中所有能在 src/test/java 找到的并且文件名与 **/Test*.java, **/*Test.java 和 **/*TestCase.java 匹配的所有单元测试       test -Dmaven.test.failure.ignore=true       mvn install -Dmaven.test.skip=true

mvn install assembly:assembly    将把依赖也打入jar包,java -cp common-*.jar com.xxx.Main 执行结果

mvn exec:java -Dexec.mainClass=org.*.Main 运行类mvn help:describe -Dplugin=exec -Dfull  查看 Exec 插件的完整描述(Exec 插件允许你运行 Java 类和其它脚本。 它不是 Maven 核心插件)

mvn hibernate3:hbm2ddl  使用Hibernate3插件构造数据库

mvn dependency:analyze 分析依赖

mvn site:run 生成站点

 

其它

1.maven传递依赖;

2.优化依赖:父项目中的dependencyManagement定义版本;/pluginManagement

3.优化依赖:如果多于一个项目依赖于一个特定的依赖,可在dependencyManagement中列出;

4.优化插件:properties 定义版本

 

插件测试

<plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <testFailureIgnore>true</testFailureIgnore>          <skip>true</skip>
        </configuration>
      </plugin>
    </plugins>

 

打jar包

<plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
      </plugin>

 

Jetty   mvn jetty:run

<plugins>
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
      </plugin>
</plugins>

 

Hibernate  mvn hibernate3:hbm2ddl 未测试

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>hibernate3-maven-plugin</artifactId>
    <version>2.1</version>
    <configuration>
      <components>
        <component>
          <name>hbm2ddl</name>
          <implementation>annotationconfiguration</implementation>
        </component>
      </components>
    </configuration>
    <dependencies>
      <dependency>
        <groupId>hsqldb</groupId>
        <artifactId>hsqldb</artifactId>
        <version>1.8.0.7</version>
      </dependency>
    </dependencies>          
</plugin>

 

编译

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <source>1.5</source>
    <target>1.5</target>
  </configuration>
</plugin>

 

示例:

<dependency>
	<groupId>org.hibernate</groupId>
	<artifactId>hibernate</artifactId>
	<version>3.2.5.ga</version>
	<exclusions>
	  <exclusion>
		<groupId>javax.transaction</groupId>
		<artifactId>jta</artifactId>
	  </exclusion>
	</exclusions>
</dependency>

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>3.8.1</version>
  <scope>test</scope>
</dependency>

 指定源代码的编码

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

 查看install plugin的版本

mvn -Dplugin=install help:describe

跳过测试

 -Dmaven.test.skip=true or -DskipTests=true

只测试一个

 -Dtest=MyTest

指定站点的编码

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-site-plugin</artifactId>
    <version>XXXX</version>
    <configuration>
      <outputEncoding>UTF-8</outputEncoding>
    </configuration>
</plugin>

tools.jar

<profiles>
    <profile>
      <id>default-tools.jar</id>
      <activation>
        <property>
          <name>java.vendor</name>
          <value>Sun Microsystems Inc.</value>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>com.sun</groupId>
          <artifactId>tools</artifactId>
          <version>1.4.2</version>
          <scope>system</scope>
          <systemPath>${java.home}/../lib/tools.jar</systemPath>
        </dependency>
      </dependencies>
    </profile>
</profiles>

 源代码SVN

http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x
http://svn.apache.org/viewvc/maven/maven-3/trunk

 

 

分享到:
评论

相关推荐

    黑马maven笔记第二天

    ### 黑马Maven笔记第二天知识点总结 #### Maven的核心优势 **1. 统一管理JAR包** - **节省空间**:Maven通过中央仓库管理所有项目的依赖,避免了重复下载相同JAR包的问题,有效减少了硬盘空间的占用。 - **依赖...

    黑马maven笔记,第一天

    ### 黑马Maven笔记详解 #### Maven简介与特点 Maven是一款强大的项目管理和构建工具,作为Apache基金会下的一个开源项目,它完全采用Java语言编写,主要用于管理Java项目。Maven通过标准化项目构建过程和依赖管理...

    Maven笔记Maven笔记Maven笔记

    Maven的安装: (首先保证JDK版本在1.6以上) 1: 通过配置MAVEN_HOME 和 %% %MAVEN_HOME%\bin 然后进行mvn -version 测试 掌握 -Xms 与 -Xmx的相关配置 2: Maven目录分析: 2.1: bin: 含有mvn运行的脚本 2.2...

    Maven笔记.pdf

    ### Maven核心知识点解析 #### Maven概述与价值 Maven是一个项目管理和综合工具,主要用于Java项目的构建、依赖管理和项目信息管理。通过Maven,开发者可以轻松地处理项目中的多个痛点问题,提升开发效率。 #####...

    maven笔记:maven-overlay-实战笔记

    【标题】:“maven笔记:maven-overlay-实战笔记” 在 Maven 的世界里,"overlay" 是一个重要的概念,主要用于Web项目的构建和部署。Maven overlay 技术允许你将多个项目的输出“重叠”在一起,形成一个新的项目,...

    maven笔记t-JavaWeb

    【标题】"maven笔记t-JavaWeb"主要聚焦于Java Web开发中Maven的使用,这是一套关于Maven的教程,旨在帮助开发者理解和掌握这个强大的构建工具。Maven是Apache软件基金会的一个项目,它简化了Java项目的构建、管理和...

    maven笔记.zip

    ** Maven 概述 ** Maven 是一个强大的项目管理和构建工具,主要应用于Java项目。它通过提供一套标准化的构建过程,使得项目的...通过学习Maven笔记,开发者可以更好地掌握这一强大的工具,提升项目开发的专业水平。

    maven笔记.docx

    【Maven笔记】 Maven是一个强大的Java项目管理工具,它主要解决了在软件开发过程中遇到的一系列问题,如依赖管理、项目构建以及环境一致性等。通过使用Maven,开发者可以更高效地管理和构建Java项目,避免手动复制...

    Maven笔记(2)-- 构建Java Project 及 Maven命令使用

    **Maven笔记(2)-- 构建Java Project 及 Maven命令使用** Maven是Apache组织开发的一个项目管理和综合工具,主要用于Java项目构建、依赖管理和项目信息管理。它通过一个统一的构建过程,使得项目的构建变得简单且...

    Maven笔记.docx

    **Maven笔记** Maven是Apache组织开发的一款Java项目管理工具,它的主要功能包括项目构建、依赖管理和仓库管理。Maven使得Java开发更加规范和高效,尤其在大型团队协作中,能够有效地解决版本冲突和自动化构建的...

    尚硅谷Maven课程笔记代码资源

    【尚硅谷Maven课程笔记代码资源】是一份全面学习Maven的资料集合,它涵盖了从基础到高级的各种知识点,旨在帮助开发者深入理解并熟练运用Maven进行自动化构建。该资源包含课件、源码和相关的笔记,使得学习过程更加...

    Maven笔记与资料.zip

    压缩包中的"笔记"和"资料"文件可能包含更深入的Maven教程、最佳实践、常见问题解答和案例研究等内容。学习这些资料有助于提升你在实际项目中的Maven应用能力,解决遇到的问题,并优化构建流程。 综上所述,Maven是...

    maven笔记

    ** Maven笔记 ** Maven是Java开发中的一个项目管理和综合工具,它简化了构建、依赖管理和项目的生命周期。本文将深入探讨Maven的核心概念、配置以及如何在实际开发中有效利用它。 ### Maven核心概念 1. **项目...

    maven学习笔记maven学习笔记

    maven学习笔记maven学习笔记maven学习笔记

    maven笔记+教案

    ** Maven详解:构建Java项目的专业工具 ** Maven是一个基于项目对象模型(Project Object Model,POM)的概念,用于管理并构建Java项目。它通过一个简单的配置文件(pom.xml),自动化项目的构建、报告和依赖管理,...

    Maven笔记,内包含Maven核心程序解压和配置,命令行环境,IDEA环境,jar包3下载失败问题的解决方案

    Maven笔记,内包含Maven核心程序解压和配置,命令行环境,IDEA环境,jar包3下载失败问题的解决方案

    java-Maven笔记.docx

    Maven 是 Java 项目中一种流行的构建工具,能够帮助开发者更好地管理项目依赖关系、编译、打包和发布。下面是 Maven 的一些知识点: 1. Maven 的必要性:Maven 之所以需要,是因为在没有 Maven 之前,开发者需要...

    Maven笔记1

    【Maven笔记1】—— Maven入门 Maven是一款强大的Java项目管理和构建工具,它解决了传统项目构建中的诸多痛点,使得Java开发变得更加规范和高效。在本文中,我们将深入探讨Maven的基本概念、功能以及如何解决上述...

Global site tag (gtag.js) - Google Analytics