`

Maven快速上手

阅读更多

Maven快速上手

博文目录

  1. Maven使用前提
  2. Maven工程的结构
  3. Maven的配置文件pom.xml
  4. Maven的单元测试
  5. 如何修改本地仓库
  6. 查找依赖的顺序
  7. 快速创建Maven工程
  8. 使用M2Eclipse及Jetty插件
  9. 其他配置

 Maven快速上手


Maven是Apache提供的项目自动化构建和项目管理软件,基于项目对象模型(POM),Maven利用一个中央信息片断管理一个项目的构建、报告和文档等步骤。

官方网站:http://maven.apache.org/

使用前提:

1,下载Maven

http://maven.apache.org/download.cgi

2,配置环境变量

M2_HOME=maven根路径:C:\server\apache-maven-3.1.0
PATH=maven的bin路径:C:\server\apache-maven-3.1.0\bin

3,执行maven命令

>mvn -v    显示maven的版本信息

maven工程的结构:
在C盘建立my-app文件夹,里面的结构如下:
my-app
|--pom.xml
|--src
   |--main
   |  |--java
   |     |--com
   |        |--mycompany
   |           |--app
   |              |--App.java
   |--test
      |--java
         |--com
            |--mycompany
               |--app
                  |--AppTest.java

pom.xml是maven的项目的配置文件
<?xml version="1.0" encoding="UTF-8"?>    
<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.mycompany.app</groupId>    
  <artifactId>my-app</artifactId>    
  <version>1.0-SNAPSHOT</version>    
    
</project> 
 

groupId:公司所做项目名称
artifactId:模块的名称
version:版本号

groupId+artifactId+version=坐标
坐标唯一标识了我们的项目的路径:
com/mycompany/app/my-app/**

App.java内容如下:
package com.mycompany.app;

public class App{
    public static void main(String[] args){
        System.out.println("hello");
    }
}
 

编译代码:
>cd myapp
>mvn compile

编译后产生target目录,里面存放的就是编译后的字节码文件

执行编译后的代码:
>cd target/classes
>java App

执行单元测试
AppTest.java
package com.mycompany.app;

import junit.framework.TestCase;

public class AppTest extends TestCase{
   
    public void testApp(){
        assertTrue( true );
    }
}
 


查询junit的jar包的坐标
http://mvnrepository.com
在pom.xml中添加junit依赖
<dependencies>    
   <dependency>    
    <groupId>junit</groupId>    
    <artifactId>junit</artifactId>    
    <version>3.8.2</version>    
   </dependency>    
</dependencies>
 

>mvn test

清除target

>mvn clean

打包

>mvn package

发布到本地仓库

>mvn install

修改本地仓库位置
默认位置在操作系统的~/.m2文件夹中,修改方法如下:
1,取消maven目录/conf/settings.xml配置文件中的注释的该行代码
<localRepository>/path/to/lacal/repo</localRepository>

2,将其中的路径修改为自己希望的路径:
<localRepositroy>d:/maven/repo</localRepository>

3,并将settings.xml文件拷贝一份到D:/maven目录中

maven查找依赖的顺序
1从本地仓库中查找:maven/repo
2从私有仓库(如果配置的话)中查找所需依赖
3从中央仓库(http://repo.maven.apache.org)中查找

使用Archetype快速创建项目

>mvn archetype:generate

根据命令行提示选择要创建的maven项目类型及坐标

我选择的是320,快速创建基本的java工程
自动创建的工程内容如下:
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>com.mycompany.app</groupId>
  <artifactId>myapp</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>myapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
 

App.java
package com.mycompany.app;

/**
 * Hello world!
 *
 */
public class App{
    public static void main( String[] args ){
        System.out.println( "Hello World!" );
    }
}
 

AppTest.java
package com.mycompany.app;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

/**
 * Unit test for simple App.
 */
public class AppTest extends TestCase{
    /**
     * Create the test case
     *
     * @param testName name of the test case
     */
    public AppTest( String testName ){
        super( testName );
    }

    /**
     * @return the suite of tests being tested
     */
    public static Test suite(){
        return new TestSuite( AppTest.class );
    }

    /**
     * Rigourous Test :-)
     */
    public void testApp(){
        assertTrue( true );
    }
}
 


使用M2Eclipse插件创建项目

MyEclipse较新的版本都支持了maven插件,如果没有,到这里下载插件

http://eclipse.org/m2e/

如果成功安装了插件,就可以直接使用MyEclipse创建Maven项目了,它会自动帮你组织好工程目录的。

在web项目中使用jetty服务
在pom.xml中添加jetty插件
<build>    
    <finalName>struts</finalName>    
    <plugins>    
         <plugin>    
          <groupId>org.mortbay.jetty</groupId>    
          <artifactId>jetty-maven-plugin</artifactId>    
          <configuration>    
            <scanIntervalSeconds>10</scanIntervalSeconds>    
            <webApp>    
              <contextPath>/</contextPath>    
            </webApp>    
             <connectors>    
               <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
                  <!--修改默认端口号-->    
                  <port>9090</port>    
                  <maxIdleTime>60000</maxIdleTime>    
               </connector>    
             </connectors>    
          </configuration>    
        </plugin>    
    </plugins>    
</build> 
 

为了修改版本号的方便可以使用以下配置
<properties>    
       <junit.version>4.11</junit.version>    
</properties>    
<dependencies>    
<dependency>    
  <groupId>junit</groupId>    
  <artifactId>junit</artifactId>    
  <version>${junit.version}</version>    
  <scope>test</scope>    
</dependency>
 

如果想使用私有工厂,可以在pom.xml中添加私有工厂的配置
<repositories>    
       <repository>    
            <id>local</id>    
            <name>nexus_server</name>    
            <url>http://192.168.1.11:8081/nexus/content/groups/public/</url>    
       </repository>    
</repositories>
 

或者修改全局私有工厂:.m2/settings.xml
<mirror>    
      <id>mirrorId</id>    
      <mirrorOf>*</mirrorOf>    
      <name>Human Readable Name for this Mirror.</name>    
      <url>http://xxxxx</url>    
</mirror> 
 
分享到:
评论

相关推荐

    MAVEN快速上手教程

    Maven现在是项目管理和依赖管理的必备工具,相信通过本课程的学习,大家可以掌握Maven在实际工程中的实际用法,从而提高自己的开发效率。 本课程整体讲解了以下几点内容: 1.Maven基础核心概念 2.Maven的配置 3.Maven...

    架构之快速上手一代码和ppt

    Maven快速上手;Memcached快速上手;MogileFS快速上手;MongoDB快速上手;Nginx快速上手;Varnish快速上手; 二、基本业务功能介绍:客户管理、商品管理、购物车、订单管理、库存管理 三、数据库建表语句脚本; 四、最终的...

    maven整合ssm,结构清晰明了,初学者快速上手开发

    本项目标题为“maven整合ssm”,旨在为初学者提供一个清晰易懂的SSM整合示例,帮助快速上手开发。通过Eclipse集成开发环境和Maven构建工具,开发者可以更方便地管理依赖,实现项目的构建和运行。 首先,我们需要...

    maven+spring-mvc+spring+mybatis简单的登陆注册,让你更加快速上手

    本项目"maven+spring-mvc+spring+mybatis简单的登陆注册"就是针对初学者的一个快速入门教程,旨在帮助你理解这四大技术的整合使用。 首先,Maven是一个项目管理工具,它可以帮助开发者管理和构建Java项目。Maven...

    官方下载maven-3.5.4

    3. **README.txt**:提供了关于如何安装、配置和使用 Maven 的基本指南,是新用户快速上手的重要文档。 4. **boot**:这个目录包含了用于启动 Maven 的小型内嵌 Jetty 服务器,主要用于插件的自动下载和更新。 5. ...

    Maven基础快速学习入门

    【标题】"Maven基础快速学习入门" 在软件开发领域,Maven是一个广泛使用的构建工具,主要用于管理和构建...对于初学者而言,通过阅读相关博文,如链接提供的"iteye博客"上的内容,结合实际操作,可以快速上手Maven。

    maven学习资源整理

    "Maven快速入门"文档提供了一个简明易懂的起点,帮助初学者快速上手。它通常会涵盖如何设置Maven环境、创建基本的Maven项目结构(如src/main/java和src/test/java),以及如何运行`mvn compile`、`mvn test`等基本...

    Apache Maven项目构建工具 v3.9.6.zip

    通过阅读这个文件,初学者可以快速上手Maven,掌握基本的构建流程。 总结,Apache Maven 3.9.6作为一款强大的项目构建工具,通过其POM、依赖管理和生命周期等特性,极大地简化了Java开发过程。无论是个人学习还是...

    Maven 实战(中文pdf)

    对于初学者,书中提供的实例和实战经验可以帮助快速上手;对于经验丰富的开发者,也能从中找到优化项目构建流程的新思路。 总的来说,《Maven实战》中文版为Java开发者提供了一条通往高效开发的道路,无论你是刚...

    apache-maven-3.5.2-win64.zip

    6. **README.txt**:通常会提供一些基础的安装和使用指导,帮助新用户快速上手Maven。 在实际开发中,Maven通过POM文件来管理项目依赖。POM是一个XML文件,包含了项目的基本信息、依赖关系、构建配置等。通过Maven...

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

    【尚硅谷Maven课程笔记代码...它不仅提供了理论知识,还有实际操作的案例,可以帮助开发者快速上手并精通Maven,提高项目管理效率。通过学习这些内容,你将能够更好地理解和利用Maven的强大功能,提升你的开发工作流。

    详细的maven教程(Maven 的安装与配置)

    Maven 安装与配置指南 Maven 是一个流行的项目管理和构建工具,广泛应用于 Java 项目开发中。下面是 Maven 的安装和配置...Maven 的安装和配置非常简单,只需要了解基本的概念和使用方法就可以快速上手使用 Maven。

    kotlin从入门到精通快速上手

    Kotlin从入门到精通快速上手教材主要围绕着Kotlin的基础知识,涵盖从语言基础到高级特性的详细介绍。本书不仅包括了Kotlin在服务器端、Android平台、JavaScript以及Kotlin Native上的应用,也着重介绍了1.1版本和1.2...

    5分钟熟悉Maven

    ### Maven快速入门指南 #### 一、Maven简介与安装 Maven是一个广泛使用的Java项目管理工具,它能够帮助开发者简化构建过程、依赖管理和项目信息的标准化管理等。本指南将带您快速熟悉Maven的基本操作,只需5分钟...

    纯净的maven框架

    这个“纯净的maven框架”是专为新手设计的,旨在提供一个基础的、易于上手的Maven环境,以便快速启动新项目。 1. **Maven的配置**:Maven的配置主要在`settings.xml`文件中进行,包括本地仓库路径、远程仓库设置、...

Global site tag (gtag.js) - Google Analytics