一、自定义变量

 <!-- 全局属性配置 -->
<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. Java类载入器(一)——类载入器层次与模型

    类载入器   虚拟机设计团队把类载入阶段中的"通过一个类的全限定名来获取描写叙述此类的二进制字节流"这个动作放到Java虚拟机外部去实现.以便让应用程序自己决定怎样去获取所须要的类 ...

  2. git配置文件读取顺序

    作者:zhanhailiang 日期:2014-11-03 git包括三个配置文件: /etc/gitconfig 文件:系统中对全部用户都普遍适用的配置. 若使用git config 时用' –sy ...

  3. 在ubuntu下安装free pascal

    1.ubuntu16.04版本已经集成了free pascal最新的3.0版,只需要安装就可以了. sudo apt install fp-compiler 在ubuntu里面,fp-compiler ...

  4. shell脚本 批量转换目录下文件编码

    发布:JB01   来源:脚本学堂     [大 中 小] 分享一例shell脚本,实现可以批量转换目录下的文件编码,很实用的一个小shell,有需要的朋友参考下.原文地址:http://www.jb ...

  5. android.view.animation(3) - LayoutAnimationController 和 GridLayoutAnimationController

    前几篇给大家讲述了如何针对某一个控件应用动画,这篇将给大家讲解如何给容器中的控件应用统一动画.即在容器中控件出现时,不必为每个控件添加进入动画,可以在容器中为其添加统一的进入和退出动画. 从上面的示例 ...

  6. MySQL编码问题集合

    1.以root用户的身份登录,查看编码设置 mysql> SHOW VARIABLES LIKE 'character%'; +--------------------------+------ ...

  7. 一款基于jQuery带事件记录的日历插件

    之前我们也已经分享过不少jQuery日历插件,有些应用了CSS3的特性,外观就特别漂亮.今天要分享的这款jQuery日历插件不仅有着绚丽的外观,而且带有日期事件记录功能,点击日期即可展开事件记录窗口, ...

  8. C#里面的枚举与位或运算符 一个枚举变量存入多个值

    以前我们如果定义一个枚举类型 ,然后定义一个枚举变量,那么这个枚举变量只能为类型中的一个值,现在我们想要一个变量能够代表多个值: 今天看<Pro Net 2.0 Windows Forms An ...

  9. wcf客户端终结点样本集合

    1. <bindings> <basicHttpBinding> <binding name="BasicHttpBinding_IUser" /&g ...

  10. ThinkPHP无限级分类

    <?php // +---------------------------------------------------------------------- // | ThinkPHP [ ...