Maven 变量及常见插件配置详解

目录

  • 一、变量 - 自定义变量及内置变量

    • 1. 自定义变量
    • 2. 内置变量
  • 二、常见插件配置
    • 1. 编译插件
    • 2. 设置资源文件的编码方式
    • 3. 自动拷贝 jar 包到 target 目录
    • 4. 生成源代码 jar 包
    • 5. 将项目打成 jar 包

一、变量 - 自定义变量及内置变量

1. 自定义变量

<properties>
    <project.build.name>tools</project.build.name>
    <project.build.sourceencoding>UTF-8</project.build.sourceencoding>
</properties>

2. 内置变量

${basedir} 项目根目录
${project.build.directory} 构建目录,缺省为target
${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes
${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}
${project.packaging} 打包类型,缺省为jar
${project.xxx} 当前pom文件的任意节点的内容

二、常见插件配置

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>   

关于 maven-dependency-plugin:用得最多的几个操作: copy , copy-dependencies 和它们对应的 unpack , unpack-dependencies

描述:copy 和 unpack 操作是由要拷某个包,这个包需要具体指定要拷哪个包,与当前工程的依赖没有关系。这两者区别 - 是否解压

copy-dependenciesunpack-dependencies ,但是它是用来拷当前工程的依赖包的。这两者区别 - 是否解压

参考链接:http://liugang594.iteye.com/blog/2093082

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>

5. 将项目打成 jar 包

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <archive>
            <manifest>
                <!-- 告知 maven-jar-plugin添加一个 Class-Path元素到 MANIFEST.MF文件,以及在Class-Path元素中包括所有依赖项 -->
                <addClasspath>true</addClasspath><!-- 所有的依赖项应该位于 lib文件夹 -->
                <classpathPrefix>lib/</classpathPrefix><!-- 当用户使用 lib命令执行JAR文件时,使用该元素定义将要执行的类名 -->
                <mainClass>com.zhengtian.tools.service.phone.MobilePhoneTool</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>

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

更多 maven 配置详见:https://my.oschina.net/zh119893/blog/276090

关于 maven-assembly-plugin 的使用

“assembly” 是把一组文件、目录、依赖元素组装成一个归档文件

参考链接:http://blog.csdn.net/WANGYAN9110/article/details/38646677

pom 中配置

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4.1</version>
    <executions>
        <execution>
            <id>make-zip</id><!-- 绑定到package生命周期阶段上 -->
            <phase>package</phase>
            <goals>
                <!-- 绑定到package生命周期阶段上 -->
                <goal>single</goal>
            </goals>
            <configuration>
                <descriptors>
                    <!--描述文件路径-->
                    <descriptor>src/assembly/assembly.xml</descriptor>
                </descriptors>
            </configuration>
        </execution>
    </executions>
</plugin>

assembly.xml 配置

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
    <id>distribution</id>
    <formats>
        <format>zip</format>
    </formats>
    <fileSets>
        <fileSet>
            <directory>${project.basedir}\src\main\resources</directory>
            <outputDirectory>\</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}\src\bin</directory>
            <outputDirectory>\bin</outputDirectory>
        </fileSet>
    </fileSets>
    <dependencySets>
        <dependencySet>
            <useProjectArtifact>true</useProjectArtifact>
            <outputDirectory>lib</outputDirectory><!-- 将scope为runtime的依赖包打包到lib目录下。 -->
            <scope>runtime</scope>
        </dependencySet>
    </dependencySets>
</assembly>

原文地址:https://www.cnblogs.com/selier/p/9510924.html

时间: 2024-10-10 15:39:40

Maven 变量及常见插件配置详解的相关文章

maven常用插件配置详解

常用插件配置详解Java代码    <!-- 全局属性配置 --> <properties> <project.build.name>tools</project.build.name> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> project.build.name:  用来定义war包名称  proje

Maven系列一pom.xml 配置详解

<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"> <!--父项目的坐标.如果项

maven的pom.xml文件配置详解

<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 "> <!-- 父项目的坐标.如

[转]Log4Net日志插件配置详解

log4net是一款优秀的第三方日志框架,可以很容易的加载到开发项目中(引用log4net的dll,再配置些基本参数即可),帮助程序员把日志信息输出到各种不同的目标,常见的有文本.数据库.windows日志.邮件.内存缓冲区等目标. 首先需要log4net的dll(源码中dll版本是1.2.10.0),引用到程序中,然后再配置下配置文件,配置文件如下: [html] view plain copy <?xml version="1.0"?> <configuratio

学习笔记——Maven settings.xml 配置详解

文件存放位置 全局配置: ${M2_HOME}/conf/settings.xml 用户配置: ${user.home}/.m2/settings.xml note:用户配置优先于全局配置.${user.home} 和和所有其他系统属性只能在3.0+版本上使用.请注意windows和Linux使用变量的区别. settings.xml详解 声明规范 <?xml version="1.0" encoding="UTF-8"?> <settings x

【转】Maven pom.xml 配置详解

原文链接:https://yq.aliyun.com/articles/38271 pom.xml文件配置详解 --声明规范 <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 pom.xml配置详解

POM的全称是“ProjectObjectModel(项目对象模型)”. pom.xml详解 声明规范 <projectxmlns="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.0http://maven.apach

Maven笔记 pom.xml配置详解

pom.xml文件配置详解 --声明规范 <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&quo

mybatis 代码生成器(IDEA, Maven)及配置详解(部分配置你应该不知道)

在使用 mybatis 过程中, 当手写 JavaBean和XML 写的越来越多的时候, 就越来越同意出错.这种重复性的工作, 我们当然不希望做那么多. 还好, mybatis 为我们提供了强大的代码生成--MybatisGenerator. 通过简单的配置, 我们就可以生成各种类型的实体类, Mapper接口, MapperXML文件, Example对象等. 通过这些生成的文件, 我们就可以方便的进行单表进行增删改查的操作. 以下的工具使用的都是 IDEA 1 创建代码生成器 1.1 创建M