一、自定义变量

 <!-- 全局属性配置 -->
<properties>
<project.build.name>tools</project.build.name>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

project.build.name: 用来定义war包名称 
project.build.sourceEncoding: 用来定义资源文件的编码格式

二、maven插件配置

1、编译插件

   <!-- 编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>

source:源代码编译版本;

target:目标平台编译版本; 
encoding:字符集编码。

2、设置资源文件的编码方式

   <!-- 设置资源文件的编码方式 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<phase>compile</phase>
</execution>
</executions>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>

xml、properties文件都是资源文件,编码的时候遇到中文总要进行转码!用什么编码?UTF-8,那就记得强制<encoding>${project.build.sourceEncoding}</encoding>

3、自动拷贝jar包到target目录

 
   <!-- 依赖插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>compile</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<!-- ${project.build.directory}为Maven内置变量,缺省为target -->
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<!-- 表示是否不包含间接依赖的包 -->
<excludeTransitive>false</excludeTransitive>
<!-- 表示复制的jar文件去掉版本信息 -->
<stripVersion>true</stripVersion>
</configuration>
</execution>
</executions>
</plugin>

在部署war包时,需要将项目依赖的jar包,也打到war包中,因此就会用到上述插件

4、生成源代码jar包

   <!-- 源代码打包插件 -->
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.1</version>
<configuration>
<!-- <finalName>${project.build.name}</finalName> -->
<attach>true</attach>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>

该插件主要用于在打jar包时,把源代码也打成jar包

5、将项目打成jar包

在将项目打成jar包时,有时会需要将项目打成可以直接运行的jar包,因此就需要将项目依赖的jar包也打入jar包中,此时需要在Eclipse上安装例外一个插件,用来打可执行jar包,详情见链接http://zheng12tian.iteye.com/blog/1765626

6、将项目打成war包

   <!-- war插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<!-- <warName>${project.build.name}</warName> -->
</configuration>
</plugin>

encoding:强制字符集编码

warName:war包名字——platform.war 
webappDirectory:产生war前,用于存放构建war包的目录——target/platform。 
warSourceDirectory:我把web工程搞成了eclipse下的WTP类型。我不喜欢maven产生的webapp目录,更喜欢WebContent!

需要注意的是: 
采用上述插件部署项目的话,使用clean package tomcat:redeploy命令。使用该命令前,需要先启动tomcat,实际上是为了让tomcat启动manager项目,实现动态部署

此部署方式虽然也是动态部署的范畴,但是每次修改文件后,需要手动再次重新部署,才会加载更改。

如果想让tomcat自动扫描项目的改动,自动加载,那么需要将maven工程的java全部编译的webapp目录下,然后将jar包和资源文件也打到webapp目录。最后在$CATALINA_HOME/conf /Catalina/localhost中添加一个xml文件,修改docbase为webapp目录。

Tomcat常用的部署方式介绍:http://blog.csdn.net/yangxueyong/article/details/6130065

7、在打包时,需要清空一些指定的目录

   <!-- clean插件 -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<filesets>
<fileset>
<directory>src/main/webapp/WEB-INF/classes</directory>
</fileset>
<fileset>
<directory>src/main/webapp/WEB-INF/lib</directory>
</fileset>
<fileset>
<directory>${project.build.directory}</directory>
</fileset>
</filesets>
</configuration>
</plugin>

8、利用tomcat-maven-plugin插件将项目自动打包并部署到tomcat中

url:是指tomcat的manager访问地址 
server:这个是tomcat服务名称设置,需要配置maven的settings.xml文件,在servers节点中手动配置server,如下所示:

 
<plugin>
<!-- 指定插件名称及版本号 -->
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.2.3</version>
<!-- 插件的Tomcat6.x配置 -->
<configuration>
<!-- 容器的配置 -->
<container>
<!-- 指定服务器版本 -->
<containerId>tomcat6x</containerId>
<!-- 指定服务器的安装目录 -->
<home>E:\Program Files\tomcat-6.0.32</home>
</container>
<!-- 具体的配置 -->
<configuration>
<!-- 部署模式:existing、standalone等 -->
<type>existing</type>
<!-- Tomcat的位置,即catalina.home -->
<home>E:\Program Files\tomcat-6.0.32</home>
<!-- 配置属性 -->
<properties>
<!-- 管理地址 -->
<cargo.tomcat.manager.url>http://localhost:8080/manager</cargo.tomcat.manager.url>
<!-- Tomcat用户名 -->
<cargo.remote.username>admin</cargo.remote.username>
<!-- Tomcat密码 -->
<cargo.remote.password>admin</cargo.remote.password>
<!-- <cargo.jvmargs> -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787 </cargo.jvmargs> -->
</properties>
</configuration>
</configuration>
</plugin>

username和password:是指tomcat的tomcat-users.xml文件中配置的,文件路径为E:\Program Files\tomcat-6.0.32\conf\tomcat-users.xml,如下所示:

  <role rolename="manager"/>
<user password="admin" roles="manager" username="admin"/>

10、有时候插件检查不通过,需要人为的忽略对有些插件的检查

170421、maven自定义变量及属性的更多相关文章

  1. 【Java_SSM】(一)maven环境变量的配置

    这篇博文我们介绍一下配置一下maven环境变量的配置. 准备工作 在eclipse配置maven之前需要我们做好准备工作,如下: 1. 安装jdk 2. 已下载好 maven,将maven配置成功 , ...

  2. Maven 教程(19)— Maven的六类属性

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79776666 内置属性 主要有两个常用内置属性:${basedir}项目的根目录 ...

  3. android自定义控件(3)-自定义当前按钮属性

    那么还是针对我们之前写的自定义控件:开关按钮为例来说,在之前的基础上,我们来看看有哪些属性是可以自定义的:按钮的背景图片,按钮的滑块图片,和按钮的状态(是开还是关),实际上都应该是可以在xml文件中直 ...

  4. iOS 成员变量,实例变量,属性变量的区别,联系

    在ios第一版中: 我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: 注意:(这个是以前的用法) @interface MyV ...

  5. Shell变量之自定义变量、环境变量

    1:环境变量        环境变量可以帮我们达到很多功能-包括家目录的变换啊.提示字符的显示啊.运行文件搜寻的路径啊等等的那么,既然环境变量有那么多的功能,问一下,目前我的 shell 环境中, 有 ...

  6. Mysql自定义变量的使用

    用户自定义变量是一个容易被遗忘的MySQL特性,但是如果能用的好,发挥其潜力,在某些场景可以写出非常高效的查询语句.在查询中混合使用过程化和关系化逻辑的时候,自定义变量可能会非常有用.单纯的关系查询将 ...

  7. .NET中公共变量与属性的区别

    在我们的程序中经常会出现以下的代码:  如:     成员变量     public   string   Name;     或者用属性     private   string   name    ...

  8. javascript . 04 匿名函数、递归、回调函数、对象、基于对象的javascript、状态和行为、New、This、构造函数/自定义对象、属性绑定、进制转换

    匿名函数:   没有名字的函数,函数整体加小括号不报错, 函数调用 : a:直接调用 (function (){函数体}) ( ) ; b:事件绑定 document.onlick = functio ...

  9. java和maven环境变量设置,Tomcat部署

    Java环境变量设置 Win10我的电脑右击属性,高级系统设置,高级,环境变量设置 新建系统变量JAVA_HOME 和CLASSPATH  变量名:JAVA_HOME 变量值:C:\Program F ...

随机推荐

  1. 【Android】16.1 Android Service基本概念

    分类:C#.Android.VS2015: 创建日期:2016-03-01 一.简介 为了解决在后台运行任务的问题,Android引入了一个称为Service的应用程序组件.Service的职责是专门 ...

  2. location 符号

    元字符 描述 \ 将下一个字符标记符.或一个向后引用.或一个八进制转义符.例如,“\\n”匹配\n.“\n”匹配换行符.序列“\\”匹配“\”而“\(”则匹配“(”.即相当于多种编程语言中都有的“转义 ...

  3. lua字符串对齐函数

    最近要用到字符串对齐,开始只是一部分字符串,就直接加空格了,后来发现有很多, 于是写了个字符串对齐的函数. --功能:分割字符串 --参数:带分割字符串,分隔符 --返回:字符串表 function ...

  4. Redis简单介绍

    redis简单介绍 Redis VS key-value缓存产品 Redis支持数据的持久化,能够将内存中的数据保持在磁盘中,重新启动的时候能够再次载入进行使用. Redis不只支持简单的key-va ...

  5. Keil(MDK-ARM)系列教程(五)_Configuration(Ⅰ)

    推荐 分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来! http://www.captainbed.net/strongerhuang Ⅰ.写在前 ...

  6. Android——Android Bundle类(转)

    今天发现自己连Bundle类都没有搞清楚,于是花时间研究了一下. 根据google官方的文档(http://developer.android.com/reference/android/os/Bun ...

  7. 动态加载javascript增强版

    我们经常使用动态加载Javascript,写个函数很容易现实,之前也写过一个函数,不过当加载多个JS时,只能根据浏览器返回的顺序来先后加载,这肯定不是我们想要的,现在使用了一下技巧,当加载多个JS时, ...

  8. 敏捷软件开发实践-Release Process/Release Plan(转)

    介绍: 因为我们的开发周期是迭代进行的,以Sprint为单位,我们每个 Sprint如何去和客户说我们的成果呢,那么我就需要Demo和release一些新功能,或者一些bug fixing.Demo我 ...

  9. hdu 1503:Advanced Fruits(动态规划 DP & 最长公共子序列(LCS)问题升级版)

    Advanced Fruits Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  10. php7 宏杂记

    php.h                                 zend_api.h ZEND_FN(name) ---> zif_##name PHP_FUNCTION(name) ...