zoukankan      html  css  js  c++  java
  • Marven的使用

    设置Maven

    允许设置的参数

    1.localRepository:  通过<localRepository../>元素设置,内容是一个路径字符串用于设置Maven的本地资源库路径。

    2. interactiveMode: Maven是否处于交互模式

    3.offline: Maven是否处于离线状态,当为false时,每当maven找不到插件,依赖库,尝试从网络下载

    4.proxies: 设置Maven代理服务器 包括服务器的ID、协议、代理服务器地址、代理服务端口、用户名、密码

    命令格式

    1

    mvn <plugin-prefix>:<goal> -D<属性名>=<属性值> …

    plugin-prefix是一个有效的插件前缀,goal就是该插件所包含的指定目标,-D用于为目标指定属性,每次运行mvn命令可通过多个-D选项来指定属性名、属性值

    2

    mvn <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>:goal]

    运行指定插件

    Maven插件和功能用法

    可登陆http://maven.apache.org/plugins/index.html查看

    插件包含的目标

    archetype:create:已过时

    archetype:generate: 使用指定原型创建Maven项目

    archetype:create-from-project: 使用已有的项目创建Maven项目

    archetype:crawl:从仓库中搜索原型

    创建java项目示例

    Mvn archetype:generate -DinteractiveMode=false -DgroupId=org.fkjava -DartifactId=mavenQs -Dpackge=org.fkjava.mavenqs

    编译项目 在pom所在文件执行

    mvn compile

    执行java类

    mvn exec:java -Dexec.mainClass=”org.fkjava.mavenqs.App”

    查看合成的pom.xml

    mvn help:effective-pom

    maven生成文件目录

    源代码 ${basedir}/src/main/java路径下

    资源文件 ${basedir}/src/main/resources路径下

    测试       ${basedir}/src/test路径下

    编译生成的class ${basedir}/target/classes路径下

    项目生成的jar ${basedir}/target路径下

    Maven的生命周期

    在pom.xml所在文件

    mvn install

    常见执行插件及顺序

    Maven-resources-plugin..resources (default-resources)

    Maven-complier-palugin…compile (default-compile)

    Maven-resources-plugin….testResources(default-testResources)

    Maven-compile-plugin-testCompile (default-testCompile)

    Maven-surefire-plugin…test(default test)

    Maven-jar-plugin (default-jar)

    Maven-intall-plugin (default-install)

    执行Maven生命周期中的一个活多个阶段 【自动从第一个阶段开始执行到指定阶段】

    mvn <phase1><phase2>….

    Maven的三个基本生命周期

    1clean   2default       3site

    1.   clean

    pre-clean: 构建之前执行预先清理

    clean 执行清理

    post-clean:最后清理

    默认生命周期生命核心

    1 compile 编译项目

    2 test 单元测试

    3 package 项目打包

    4 install 安装到本地仓库

    5 deploy 部署到远程仓库

    上面列出的只是 Maven默认生命周期的核心阶段,实际上, Maven默认的生命周期包含如下段

    validate验证项目是否正确。

    generale-sources:生成源代码

    ocess-sources:处理源代码

    generate-resources:生成项目所需的资源文件

    process-rcsources:复制资源文件至目标目录

    compile:编译项目的源代码。

    process-classes:处理编译生成的文件

    generale-test-sources:生成测试源代码

    process-test-sources:处理测试源代码。

    generate-test-resources:生成测试的资源文件

    process-test-resourcest复制测试的资源文件至测试目标目录,

    site生命周期用于生成项目报告站点、发布站点,该生命周期包含如下核心阶段,

    pre-site:生成站点之前做验证

    site:生成站点

    post-sie:生成站点之后做验证,

    site-deploy:发布站点到远程服务器

    进入 mavenS项目中 pom.xm所在的路径,执行如下命令

    第一次执行该命令时将会看到Mn不地下插件及相关文件,成功执行该命全将可以

    mavenQs目录下多出一个aget目录,该目录下包含一个sie子目录,打开site子目录下index

    修改pom执行   ant compile可以看到相关绑定到指定生命周期的阶段

    下面为maven执行上面命令生成的pom文件

    <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>org.fkjava</groupId>

      <artifactId>mavenQs</artifactId>

      <version>1.0-SNAPSHOT</version>

      <name>mavenQs</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>

      <repositories>

        <repository>

          <snapshots>

            <enabled>false</enabled>

          </snapshots>

          <id>central</id>

          <name>Central Repository</name>

          <url>https://repo.maven.apache.org/maven2</url>

        </repository>

      </repositories>

      <pluginRepositories>

        <pluginRepository>

          <releases>

            <updatePolicy>never</updatePolicy>

          </releases>

          <snapshots>

            <enabled>false</enabled>

          </snapshots>

          <id>central</id>

          <name>Central Repository</name>

          <url>https://repo.maven.apache.org/maven2</url>

        </pluginRepository>

      </pluginRepositories>

      <build>

        <sourceDirectory>D:\Eclipse\eclipseWorkSpace\mavenQs\src\main\java</sourceDirectory>

        <scriptSourceDirectory>D:\Eclipse\eclipseWorkSpace\mavenQs\src\main\scripts</scriptSourceDirectory>

        <testSourceDirectory>D:\Eclipse\eclipseWorkSpace\mavenQs\src\test\java</testSourceDirectory>

        <outputDirectory>D:\Eclipse\eclipseWorkSpace\mavenQs\target\classes</outputDirectory>

        <testOutputDirectory>D:\Eclipse\eclipseWorkSpace\mavenQs\target\test-classes</testOutputDirectory>

        <resources>

          <resource>

            <directory>D:\Eclipse\eclipseWorkSpace\mavenQs\src\main\resources</directory>

          </resource>

        </resources>

        <testResources>

          <testResource>

            <directory>D:\Eclipse\eclipseWorkSpace\mavenQs\src\test\resources</directory>

          </testResource>

        </testResources>

        <directory>D:\Eclipse\eclipseWorkSpace\mavenQs\target</directory>

        <finalName>mavenQs-1.0-SNAPSHOT</finalName>

        <pluginManagement>

          <plugins>

            <plugin>

              <artifactId>maven-antrun-plugin</artifactId>

              <version>1.3</version>

            </plugin>

            <plugin>

              <artifactId>maven-assembly-plugin</artifactId>

              <version>2.2-beta-5</version>

            </plugin>

            <plugin>

              <artifactId>maven-dependency-plugin</artifactId>

              <version>2.8</version>

            </plugin>

            <plugin>

              <artifactId>maven-release-plugin</artifactId>

              <version>2.5.3</version>

            </plugin>

          </plugins>

        </pluginManagement>

        <plugins>

          <plugin>

            <artifactId>maven-clean-plugin</artifactId>

            <version>2.5</version>

            <executions>

              <execution>

                <id>default-clean</id>

                <phase>clean</phase>

                <goals>

                  <goal>clean</goal>

                </goals>

              </execution>

            </executions>

          </plugin>

          <plugin>

            <artifactId>maven-resources-plugin</artifactId>

            <version>2.6</version>

            <executions>

              <execution>

                <id>default-testResources</id>

                <phase>process-test-resources</phase>

                <goals>

                  <goal>testResources</goal>

                </goals>

              </execution>

              <execution>

                <id>default-resources</id>

                <phase>process-resources</phase>

                <goals>

                  <goal>resources</goal>

                </goals>

              </execution>

            </executions>

          </plugin>

          <plugin>

            <artifactId>maven-jar-plugin</artifactId>

            <version>2.4</version>

            <executions>

              <execution>

                <id>default-jar</id>

                <phase>package</phase>

                <goals>

                  <goal>jar</goal>

                </goals>

              </execution>

            </executions>

          </plugin>

          <plugin>

            <artifactId>maven-compiler-plugin</artifactId>

            <version>3.1</version>

            <executions>

              <execution>

                <id>default-compile</id>

                <phase>compile</phase>

                <goals>

                  <goal>compile</goal>

                </goals>

              </execution>

              <execution>

                <id>default-testCompile</id>

                <phase>test-compile</phase>

                <goals>

                  <goal>testCompile</goal>

                </goals>

              </execution>

            </executions>

          </plugin>

          <plugin>

            <artifactId>maven-surefire-plugin</artifactId>

            <version>2.12.4</version>

            <executions>

              <execution>

                <id>default-test</id>

                <phase>test</phase>

                <goals>

                  <goal>test</goal>

                </goals>

              </execution>

            </executions>

          </plugin>

          <plugin>

            <artifactId>maven-install-plugin</artifactId>

            <version>2.4</version>

            <executions>

              <execution>

                <id>default-install</id>

                <phase>install</phase>

                <goals>

                  <goal>install</goal>

                </goals>

              </execution>

            </executions>

          </plugin>

          <plugin>

            <artifactId>maven-deploy-plugin</artifactId>

            <version>2.7</version>

            <executions>

              <execution>

                <id>default-deploy</id>

                <phase>deploy</phase>

                <goals>

                  <goal>deploy</goal>

                </goals>

              </execution>

            </executions>

          </plugin>

          <plugin>

            <artifactId>maven-site-plugin</artifactId>

            <version>3.3</version>

            <executions>

              <execution>

                <id>default-site</id>

                <phase>site</phase>

                <goals>

                  <goal>site</goal>

                </goals>

                <configuration>

                  <outputDirectory>D:\Eclipse\eclipseWorkSpace\mavenQs\target\site</outputDirectory>

                  <reportPlugins>

                    <reportPlugin>

                      <groupId>org.apache.maven.plugins</groupId>

                      <artifactId>maven-project-info-reports-plugin</artifactId>

                    </reportPlugin>

                  </reportPlugins>

                </configuration>

              </execution>

              <execution>

                <id>default-deploy</id>

                <phase>site-deploy</phase>

                <goals>

                  <goal>deploy</goal>

                </goals>

                <configuration>

                  <outputDirectory>D:\Eclipse\eclipseWorkSpace\mavenQs\target\site</outputDirectory>

                  <reportPlugins>

                    <reportPlugin>

                      <groupId>org.apache.maven.plugins</groupId>

                      <artifactId>maven-project-info-reports-plugin</artifactId>

                    </reportPlugin>

                  </reportPlugins>

                </configuration>

              </execution>

            </executions>

            <configuration>

              <outputDirectory>D:\Eclipse\eclipseWorkSpace\mavenQs\target\site</outputDirectory>

              <reportPlugins>

                <reportPlugin>

                  <groupId>org.apache.maven.plugins</groupId>

                  <artifactId>maven-project-info-reports-plugin</artifactId>

                </reportPlugin>

              </reportPlugins>

            </configuration>

          </plugin>

        </plugins>

      </build>

      <reporting>

        <outputDirectory>D:\Eclipse\eclipseWorkSpace\mavenQs\target\site</outputDirectory>

      </reporting>

    </project>

    Maven资源库分以下三种

    木地贷源库:

    用到的所有插件,第三方框架都会下载到本地库,只有当木地库中钱不到

    时才采取从程下载,开发者可以通过 Maven安装目录下的 corsetting, xml文件,或者用户

    录下的m2 settings文件中的< localReposifory元素进行设置

    运程资源库:

    远程资源库通常由公词或团队进行集中维护。通过远程资源库,可以让全公司的

    项目使用相问的MAR包系统

    中央资源库(默认):

    中央资源库由 Maven官方维护,中央资源包括了各种公开的 Maven插

    作,各种第三方项目。几乎所有的开源项目都会选择中央资源库发布框架,中央资连地址为

    epol maven.org/maven?

    当 Maven需要使用某个插件或JAR包时, Maven的搜索顺序为:本地资源库→远程资源库→中央当 Maven从中央资源库下载了某个插件或JAR包时, Maven都会自动在本地资源库中保存


      

     

    上面配置信息用于定制该项目的配置信息,这段配置信息指定了该项目遵守的 License,并指定了目所属的组织、项目的开发者,以及对项目有贡献的人,这些信息都用于定制该 Maven项目,这息主要起描述性作用为该项目增加 Struts2的支持,可以在 pom. Xml中的<dependencies>元素内增加< dependency.。。>元素,每个< dependency,个元素定义一个依赖框架或依赖类库元素

    <dependency../>可接受如下子元素

    <groupId…/>:指定依赖框架或依赖类库所属的组织ID

    < artifact.Id../>:指定依赖框架或依赖类库的项目名。

    <version…/>:指定依赖框架或依赖类库的版本号。

    <scope../>:指定依赖库起作用的范围,该子元素可接受 compile, provided, test, system; runtime、importt等值

    <type…/>指定依赖框架或依赖类库的类型该元素默认值是jar还可以指定war、ejn-client、test-tar等值

    红等值或为的型,该元素的默认值是加另外,还可以指定

    <optional…/>该元素指定该依赖库为可选

    <classifier…/>jdk版本号

    <exclusions…/>该元素用于排除依赖

    scope.>元素用于指定依赖库起作用的范围,该元素可指定如下值

    compile默认的范围,编译、测试,打包时需要。

    provided表示容器会在 runtime时提供

    test:只用于测试阶段

    system: 与provide类似,但要求jar是系统自带

    import集成父POM文件中用dependencyManagement配置的依赖只能在dependencyManagement范围使用

     

  • 相关阅读:
    CVTE前端一面
    转载几篇看过的几篇使用技术博文
    Vue自定义指令
    node项目初始化的一些配置
    vue+element 实现在表格内插入其他组件,每行数据独立存储
    jquery如何实现当页面下拉到一定位置时,右下角出现回到顶部图标
    css实现垂直居中的方法整理
    css3兼容性检测工具
    css变换与动画详解
    手机访问电脑端网站偏问题解决
  • 原文地址:https://www.cnblogs.com/sundaysjava/p/10306814.html
Copyright © 2011-2022 走看看