`
yefeishan
  • 浏览: 108754 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

maven 命令执行周期

阅读更多

        maven打印的命令:

mvn -Dtest -DfailIfNoTests=false -e package

 

       我们用maven打war包的时候,打包阶段将会创建一个war文件。但是,在它之前的目标做什么呢,像compiler:compilesurefire:test?在Maven经过它生命周期中package之前的阶段的时候,这些目标被运行了;Maven执行一个阶段的时候,它首先会有序的执行前面的所有阶段,到命令行指定的那个阶段为止。每个阶段对应了零个或者多个目标。我们没有进行任何插件配置或者定制,所以这个例子绑定了一组标准插件的目标到默认的生命周期。当Maven经过以package为结尾的默认生命周期的时候,下面的目标按顺序被执行:

resources:resources

Resources插件的resources目标绑定到了resources 阶段。这个目标复制src/main/resources下的所有资源和其它任何配置的资源目录,到输出目录。

compiler:compile

Compiler插件的compile目标绑定到了compile 阶段。这个目标编译src/main/java下的所有源代码和其他任何配置的资源目录,到输出目录。

resources:testResources

Resources插件的testResources目标绑定到了test-resources 阶段。这个目标复制src/test/resources下的所有资源和其它任何的配置的测试资源目录,到测试输出目录。

compiler:testCompile

Compiler插件的testCompile目标绑定到了test-compile 阶段。这个目标编译src/test/java下的测试用例和其它任何的配置的测试资源目录,到测试输出目录。

surefire:test

Surefire插件的test目标绑定到了test 阶段。这个目标运行所有的测试并且创建那些捕捉详细测试结果的输出文件。默认情况下,如果有测试失败,这个目标会终止。

jar:jar

Jar插件的jar目标绑定到了package 阶段。这个目标把输出目录打包成JAR文件。

总结得来说,当我们运行mvn package,Maven运行到打包为止的所有阶段,在Maven沿着生命周期一步步向前的过程中,它运行绑定在每个阶段上的所有目标。你也可以像下面这样显式的指定一系列插件目标,以得到同样的结果:

mvn resources:resources \
    compiler:compile \
    resources:testResources \
    compiler:testCompile \
    surefire:test \
    jar:jar

运行package阶段能很好的跟踪一个特定的构建中包含的所有目标,它也允许每个项目使用Maven来遵循一组定义明确的标准。而这个生命周期能让开发人员从一个Maven项目跳到另外一个Maven项目,而不用知道太多每个项目构建的细节。如果你能够构建一个Maven项目,那么你就能构建所有的Maven项目。

 

一个常用的pom文件:

 

<?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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>boss</groupId>
  <artifactId>boss</artifactId>
  <packaging>war</packaging>
  <version>0.1</version>
  <description></description>
 
  <repositories>
    <repository>
      <id>scmserver-releases</id>
      <name>scmserver-releases</name>
      <url>http://192.168.***.***:8080/artifactory/repo</url>
    </repository>
  </repositories>
  <properties>
   <java.version>1.6</java.version>
   <junit.version>3.8.2</junit.version>
   <log4j.version>1.2.14</log4j.version>
  </properties>
 
  <pluginRepositories>
    <pluginRepository>
      <id>scmserver-releases</id>
      <name>scmserver-releases</name>
      <url>http://192.168.***.***:8080/artifactory/repo</url>
    </pluginRepository>
  </pluginRepositories>
   <!--这个地方比较重要,资源文件分布在不同的文件夹下面,非默认目录-->
  <build>
   <finalName>boss</finalName>   
   <sourceDirectory>src/main/java</sourceDirectory>
   <resources>
    <resource>
     <directory>src/main/java</directory>
     <includes>
      <include>**/*.xml</include>
     </includes>
    </resource>
    <resource>
     <directory>src/main/resources</directory>
    </resource>
   </resources>
   <!-- 指定java源文件编译的版本以及编码格式 -->
   <plugins> 
     <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
         <source>${java.version}</source> 
         <target>${java.version}</target>
         <encoding>UTF-8</encoding> 
       </configuration> 
     </plugin>
   </plugins> 
  </build>
  <dependencies>
 <dependency>
   <groupId>org.apache.struts</groupId>
   <artifactId>struts2-config-browser-plugin</artifactId>
   <version>${struts.version}</version>
   <scope>test</scope>
 </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>${log4j.version}</version>
    </dependency>

  </dependencies>
</project>

分享到:
评论

相关推荐

    Maven 命令Maven 命令Maven 命令

    Maven 是一个强大的Java项目管理工具,它简化了构建、依赖管理和项目生命周期的过程。通过使用Maven,开发者可以遵循一种标准化的方式来构建项目,使得不同项目的构建过程具有一致性。以下是一些Maven的常用命令及其...

    java开发maven命令详解

    ### Maven命令详解 Maven是Java项目自动化构建工具的一个标准,它通过一组生命周期构建项目对象模型(POM),简化了构建过程。对于初学者来说,理解Maven的基本命令及其用法至关重要。 #### 1. `mvn -v` 用于显示...

    eclipse下几个简单maven命令

    在Eclipse中,你可以使用内置的Maven支持来运行这些命令,通过右键点击项目,选择"Run As" -&gt; "Maven Build...",然后在"Goals"字段中输入对应的Maven命令。同时,也可以通过Eclipse的Maven插件(如M2E)配置构建...

    Maven3实战笔记04Maven的生命周期和插件

    4. **test**:执行Default生命周期中的`test`阶段,调用`maven-surefire-plugin`的`test`目标来运行单元测试。 5. **package**:执行Default生命周期中的`package`阶段,调用`maven-jar-plugin`的`jar`目标来打包...

    maven常用命令以及以个测试项目

    **正文** Maven是Java开发中的一...通过熟练掌握Maven命令和配置,开发者可以高效地管理项目依赖,实现自动化构建,从而提高开发效率。而提供的测试项目则可以帮助我们更好地理解Maven如何与测试集成,确保代码质量。

    maven命令下载jar包.rar

    总结来说,这个压缩包提供了一种解决Maven自动下载jar包失败的替代方案,通过手动执行特定的Maven命令,确保项目能够获取到必要的依赖,从而保证项目的正常构建和运行。这对于开发者来说是一种非常实用的工具,尤其...

    maven常用命令

    在执行 Maven 构建时,如果希望跳过测试,可以添加 `-Dmaven.test.skip=true` 参数,如: ``` mvn clean install -Dmaven.test.skip=true ``` 5. **安装本地文件到本地库** 当需要将一个本地的 JAR 文件安装到...

    maven配置命令及项目部署

    maven插件是指在生命周期中的某个阶段执行的任务,例如编译、测试、打包等。 maven仓库 maven仓库是指存储项目依赖项的仓库。maven仓库可以是本地仓库,也可以是远程仓库。maven提供了多种仓库类型,例如...

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

    例如,`mvn package`命令执行了`validate`到`package`的所有阶段。 ### Maven插件 Maven通过插件扩展其功能,如`maven-compiler-plugin`用于编译Java代码,`maven-surefire-plugin`用于运行测试。插件配置在`...

    maven生成可执行jar命令

    2. **执行Maven命令**:在命令行中切换到项目根目录下,执行以下命令: ``` mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true ``` 其中: - `clean`: 清除项目构建产生的临时文件。 - `...

    maven实用命令

    通过熟练掌握这些Maven命令,你可以更加高效地管理你的Java项目,无论是构建、测试还是部署,都能得心应手。同时,Maven的插件系统使得你可以根据需求扩展其功能,满足各种复杂的构建需求。在实际开发过程中,不断...

    Maven的生命周期阶段.docx

    用户可以直接在Eclipse中右键点击项目或`pom.xml`文件,选择`Run As &gt; Maven Build`,预设或自定义Maven命令。例如,自定义`mvn clean install`命令后,就可以在M2Eclipse中方便地执行这个构建流程。 总的来说,...

    Maven 生命周期.pdf

    这些命令实际上是触发了Maven生命周期中对应阶段的执行,并由生命周期调用相应的插件完成具体工作。 综上所述,Maven生命周期是将构建过程抽象化的一种方式,它包含了一系列阶段,并且这些阶段是预定义的、有顺序的...

    maven常用命令.docx

    Maven是Java开发中的一款强大的构建工具,它简化了项目的构建、依赖管理和生命周期过程。通过配置POM(Project Object Model)文件,Maven可以自动化处理项目的构建、编译、测试、打包、部署等一系列任务。以下是对...

    maven基本命令详解

    Maven 提供了多种命令来执行这些操作: - 编译项目源代码:`mvn compile` - 编译测试源代码:`mvn test-compile` - 运行测试:`mvn test` - 创建站点文档:`mvn site` - 打包项目:`mvn package` #### 6. 安装与...

    maven命令指南

    ### Maven命令指南:Windows系统下的应用与实践 Maven,作为Java项目管理和综合工具链的领导者,为开发者提供了从项目构建、依赖管理到文档生成等一系列的功能。本文将深入解析Maven在Windows系统下通过命令行运行...

    xjar-maven-plugin:XJar-Maven-Plugin是对XJar的一个Maven插件封装,实现可通过Maven命令或绑定在Maven的生命周期之中执行,以更便捷的方式集成XJar

    XJar-Maven-Plugin是对的一个Maven插件封装,实现可通过Maven命令或绑定在Maven的生命周期之中执行,从而更加便捷的方式集成了 。 GitHub: : 什么是XJar XJar是基于对JAR包内部资源的加密以及扩展ClassLoader来...

    Maven使用命令创建工程,打包工程和常用命令使用的代码文件

    每个生命周期由一系列阶段(如`validate`, `compile`, `package`等)组成,命令执行时会按顺序执行相应阶段。 6. Maven插件: Maven通过插件扩展其功能,如maven-compiler-plugin用于编译,maven-surefire-plugin...

    maven 可执行程序 文档 需要java环境

    Maven本身是一个Java应用程序,因此在运行任何Maven命令之前,必须确保系统已经安装了Java Development Kit (JDK)。JDK提供了一个Java虚拟机(JVM),使得Maven能够运行在任何支持Java的平台上。通常,Maven的可执行...

Global site tag (gtag.js) - Google Analytics