Maven实战读书笔记(七):Maven常用功能

7.1、资源排除

<resources>
   <!-- 启动过滤,包含的文件会被过滤掉 -->
   <resource>
     <directory>src/main/resources</directory>
     <filtering>true</filtering>
     <includes>
       <include>src/main/resources/dev/*.*</include>
       <include>src/main/resources/local/*.*</include>
     </includes>
   </resource>

  <!-- 不启动过滤,包含的文件会被打包 -->
  <resource>
    <directory>src/main/resources</directory>
    <filtering>false</filtering>
    <includes>
      <include>*.xml</include>
      <include>*.properties</include>
    </includes>
  </resource>
 </resources>

7.2、环境区分

 <!-- 配置 -->
 <profiles>
    <!-- 开发环境 -->
    <profile>
     <id>dev</id>
     <activation>
       <activeByDefault>true</activeByDefault>
     </activation>
     <build>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-antrun-plugin</artifactId>
         <version>1.1</version>
         <executions>
           <execution>
             <phase>test</phase>
             <goals>
               <goal>run</goal>
             </goals>
             <configuration>
               <tasks>
                 <echo>Using dev</echo>
                 <copy file="src/main/resources/dev/systemParm.properties"
tofile="${project.build.outputDirectory}/systemParm.properties" />
               </tasks>
             </configuration>
           </execution>
         </executions>
       </plugin>
     </plugins>
   </build>
   </profile>

 <!-- 本地环境 -->
 <profile>
   <id>local</id>
   <build>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-antrun-plugin</artifactId>
         <version>1.1</version>
         <executions>
           <execution>
             <phase>test</phase>
             <goals>
               <goal>run</goal>
             </goals>
             <configuration>
             <tasks>
               <echo>Using local</echo>
               <copy file="src/main/resources/local/systemParm.properties"
tofile="${project.build.outputDirectory}/systemParm.properties" />
             </tasks>
           </configuration>
         </execution>
       </executions>
     </plugin>
     </plugins>
     </build>
     </profile>
 </profiles>

7.3.配置jdk版本—maven全局配置

<profile>    
   <id>JDK-1.8</id>
   <activation>
     <activeByDefault>true</activeByDefault>
     <jdk>1.8</jdk>
   </activation>
   <properties>
     <maven.compiler.source>1.8</maven.compiler.source>
     <maven.compiler.target>1.8</maven.compiler.target>
     <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
   </properties>
 </profile>

原文地址:https://www.cnblogs.com/Jxwz/p/8372383.html

时间: 2024-08-04 21:18:23

Maven实战读书笔记(七):Maven常用功能的相关文章

Maven实战读书笔记(8)

何为Maven的生命周期? 1.Maven从大量项目和构建工具中学习和反思,然后总结了一套高度完善的.易扩展的生命周期 2.这个生命周期包含了项目的清理.初始化.编译.测试.打包.集成测试.验证.部署和站点生成等几乎所有的构建步骤 3.Maven的生命周期是抽象的,这意味着生命周期本身不做任何实际的工作,实际的任务(如编译源代码)都是交由插件来完成的 Maven的这种思想与设计模式的模板方法非常相似 模板方法模式在父类中定义算法的整体结构,子类可以通过实现或者重写父类的方法来控制实际的行为,这样

Maven实战读书笔记(四):Maven生命周期与插件

Maven的生命周期是对所有构建过程的抽象和统一.包含了项目的清理.初始化.编译.测试.打包.集成测试.验证.部署和站点生成等几乎所有构建步骤. Maven的生命周期是抽象的,其实际行为是由插件来完成的,生命周期和插件两者协同合作,密不可分. 这种思想与设计模式中的模板方法非常相似.模板方法模式在父类定义算法的整体结构,子类通过实现或者重写父类的方法来控制实际行为,这样既能保证算法有足够的可扩展性,又能严格控制算法的整体结构. 4.1 生命周期 Maven拥有3套独立的生命周期:clean.de

Maven实战读书笔记(6)

Maven的坐标和依赖是?构件的逻辑表示方式和物理表示方式是? 1.坐标和依赖是任何一个构件在Maven世界中的逻辑表示方式 2.文件是Maven构件的物理表示方式 3.Maven通过仓库来统一管理这些文件 那么,构件是什么东东? 1.任何一个依赖.插件或者项目构建的输出,都可以称为构件 2.依赖log4j-1.2.15.jar是一个构件 3.插件maven-compiler-plugin-2.0.2.jar是一个构件 4.account-email项目构建完成后输出account-email-

Maven实战读书笔记(18)

代码行统计插件的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/maven-v4_0_0.xsd"> <m

Maven实战读书笔记(14)

什么是版本管理? 版本管理是指项目整体版本的演变过程管理,如从1.0-SNAPSHOT到1.0再到1.1-SNAPSHOT 什么是版本控制? 版本控制是指借助版本控制工具(如Subversion)追踪代码的每一个变更 什么时候可以将快照版本更新为发布版本 1.所有自动化测试应当全部通过 2.项目没有配置任何快照版本的依赖 3.项目没有配置任何快照版本的插件 4.项目所包含的代码已经全部提交到版本控制系统中 Maven的版本号定义约束 可能有个版本号是这样的,1.3.4-beta-2 Maven的

Maven实战读书笔记(六):Maven灵活构建

Maven为了支持构建的灵活性,内置了3大特性,即:属性.Profile和资源过滤. 6.1 Maven属性 Maven的属性与Java代码的常量有异曲同工之妙,都是为了消除重复,对相关内容进行统一管理并且可以减少日后升级版本的工作量,降低错误发生的概率. 在POM文件中,可以通过${属性名称}的方式来引用属性. 在Maven中,存在6类属性,分别为: 1) 内置属性,主要有两个,分别为:${basedir}表示项目根目录,即POM文件所在的目录.${version}表示项目的版本. 2) PO

Maven实战读书笔记(15)

关于灵活的构建 一个优秀的构建系统必须足够灵活,它应该能够让项目在不同的环境下都能成功地构建. 例如,典型的项目都会有开发环境.测试环境和产品环境,这些环境的数据库配置不尽相同,那么项目构建的时候就需要能够识别所在的环境并使用正确的配置 还有一种常见的情况是,项目开发了大量的集成测试,这些测试运行起来非常耗时,不适合在每次构建项目的时候都运行,因此需要一种手段能让我们在特定的时候才激活这些集成测试,Maven为了支持构建的灵活性,内置了三大特性,即属性.Profile和资源过滤 Maven属性

Maven实战读书笔记(13)

WAR 1.基于Java的Web应用,其标准的打包方式是WAR 2.WAR与JAR类似,不过它包含更多的内容,如JSP文件.Servlet.Java类.web.xml配置文件.依赖JAR包.静态web资源(如HTML.CSS.JavaScript文件)等 一个典型的WAR文件的目录结构 - war / + META-INF / + WEB-INF / | + classes / | | + ServletA.class | | + config.properties | | + ... | |

maven实战读书笔记(1)

Maven这个词的中文翻译是? 可以翻译为"知识的积累",也可以翻译为"专家"或"内行" Maven是啥?干什么的? 1.一个跨平台的项目管理工具 2.Apache组织的一个颇为成功的开源项目 3.Maven主要服务于基于Java平台的项目构建.依赖管理和项目信息管理 4.适合小型的开源类项目.大型的企业级应用 5.适合传统的瀑布式开发.流行的敏捷模式开发 跨平台是指?Maven是跨平台的 无论是Windows.Linux或者Mac上,都可以使用