zoukankan      html  css  js  c++  java
  • Maven应用

    Maven进行项目管理很方便,下面介绍一下学习maven中的笔记。我是在Windows上运行的          有些知识点没有试,只是收集转载,很可能存在错误

    1.安装

    解压缩之后,配置环境变量MAVEN_HOME 为解压缩路径,在环境变量PATH中添加 %MAVEN_HOME%in

    打开cmd   输入命令 mvn -v 验证安装是否成功

    2.代理

    如果连接互联网需要通过代理,那么必须为Maven进行代理设置,否则无法下载依赖。

    在{M2_HOME}/conf/settings.xml中添加代理的配置信息

    <proxies>
        <proxy>
          <id>optional</id>
          <active>true</active>
          <protocol>http</protocol>
          <username>proxyuser</</username>
          <password>proxypass</password>
          <host>proxy.host.net</host>
          <port>80</port>
          <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
        </proxy>
      </proxies>

    3.本地库

    本地库默认保存在个人文件夹下的.m2文件夹中,通过修改{M2_HOME}/conf/settings.xml文件可以更改本地库的位置

    <localRepository>D:maven
    epository</localRepository>

    在eclipse中则要properties->maven->user setting中更新配置文件的位置,使eclipse能读到正确的配置文件

    4.添加外部库

    maven有一个默认的中央库,会根据pom.xml中配置的依赖自动连接该库进行下载       http://search.maven.org/

    但是当中央库中没有,而在别的库中,我们就需要添加别的库。通过在pom.xml里面的<repositionry>标签来实现

     <repositories>
        <repository>
            <id>java.net</id>
            <url>https://maven.java.net/content/repositories/public/</url>
        </repository>
     </repositories>

    这样就添加了java.net库。

    5.依赖

    maven一个很重要的功能就是依赖管理。添加依赖的方法如下,在pom.xml中添加

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
       </dependency> </dependencies>
        <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
                <exclusions>
                    <exclusion>           //不导入spring中的commons_logging包
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
        </dependency>

    这个具体的配置信息可以在  http://search.maven.org/  maven服务器上查看。需要什么添加什么就好

    关于dependecy的scope属性

    Scope描述
    compile 该范围表明相关依赖是只在工程的类路径下有效。默认取值。
    provided 该范围表明相关依赖是由运行时的 JDK 或者 网络服务器提供的。
    runtime 该范围表明相关依赖在编译阶段不是必须的,但是在执行阶段是必须的。
    test 该范围表明相关依赖只在测试编译阶段和执行阶段。
    system 该范围表明你需要提供一个系统路径。(添加本地jar时使用)
    import 该范围只在依赖是一个 pom 里定义的依赖时使用。同时,当前工程的POM 文件的部分定义的依赖关系可以取代某特定的 POM
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
            <version>1.1.1</version>
            <scope>system</scope>
            <!--本地jar的路径,相对或者绝对都可以-->
            <systemPath>path/to/yourLocalJar.jar</systemPath>
    </dependency>

    7.创建普通java项目

    首先建一个工程文件夹并进入,然后运行命令

    mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name}-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

    groupId  项目的包名       artifactId   项目名        archetypeArtifactId  项目类型         interactiveMode 是否开启交互模式(根据提示输入参数)

    也可以输入   mvn archetype:generate    然后根据提示逐步设定参数

    完成后输入mvn eclipse:eclipse 就可以完成该项目的eclipse工程化

    mvn package 就可以完成打包

    8.创建web项目

    首先建一个工程文件夹并进入,然后运行命令

    mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name}-DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

    groupId  项目的包名       artifactId   项目名        archetypeArtifactId  项目类型         interactiveMode 是否开启交互模式(根据提示输入参数)

    也可以输入   mvn archetype:generate    然后根据提示逐步设定参数

    mvn eclipse:eclipse 就可以完成该项目的eclipse工程化

    mvn package 就可以完成打包

    9.插件

    插件描述
    clean 构建之后清理目标文件。删除目标目录。
    compiler 编译 Java 源文件。
    surefile 运行 JUnit 单元测试。创建测试报告。
    jar 从当前工程中构建 JAR 文件。
    war 从当前工程中构建 WAR 文件。
    javadoc 为工程生成 Javadoc。
    antrun 从构建过程的任意一个阶段中运行一个 ant 任务的集合。

    10.模板

    使用命令mvn archetype:generate 根据提示简历项目时,会有一个选项是选择模板编号。

    maven提供了1000多种模板可供选择。我们可以将它输出到txt中来查看各个模板的编号和信息

     mvn archetype:generate > templates.txt

    使用上面的命令就可以将模板信息输出到txt文档中供查看

    11.快照

    公司有个maven私服,我们连接该私服需要进行配置。

    <mirrors>
        <mirror>
          <id>Nexus</id>
          <mirrorOf>*</mirrorOf>
          <name>Nexus Mirror.</name>
          <url>http://192.168.122.164:8081/nexus-2.1/content/groups/public</url>
        </mirror>
      </mirrors>

    我们上传自己的jar时,可以使用如下命令

    1). 安装到本地库:
    mvn install:install-file -DgroupId=org.apache.hadoop -DartifactId=hbase -Dversion=1.0 -Dpackaging=jar -Dfile=[path to file]
    
    2). 安装到私服
    mvn deploy:deploy-file -DgroupId=org.apache.hadoop -DartifactId=hbase -Dversion=1.0 -Dpackaging=jar -Dfile=[path to file] -Durl=[url] -DrepositoryId=[id]

    而快照则是我们的工程版本定义为 snapshot  如下所示

    <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>data-service</groupId>
       <artifactId>data-service</artifactId>
       <version>1.0-SNAPSHOT</version>
       <packaging>jar</packaging>
       <name>health</name>
       <url>http://maven.apache.org</url>
       <properties>
          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
       </properties>
       </project>

    这样生成的jar上传之后,别的项目引用时 每次都会从库中下载,确保下载的是最新的,避免了重复更改配置文件版本号的问题

  • 相关阅读:
    linux信号
    APM浅析
    Jackson高并发情况下,产生阻塞
    [转]slf4j 与log4j 日志管理
    2015-09-27 git学习
    MySQL学习笔记-锁相关话题
    MySQL学习笔记-MySQL数据库优化实践[转]
    MySQL学习笔记-事务相关话题
    几个关于网站架构和性能的问题(我在知乎上的问答)
    MySQL学习笔记-数据库文件
  • 原文地址:https://www.cnblogs.com/mamuluke/p/5177074.html
Copyright © 2011-2022 走看看