zoukankan      html  css  js  c++  java
  • 【sping +maven 】pom文件plugin介绍

    获取插件信息

    比如查看插件目标有哪些参数可以使用、使用方式、示例、常见问题等:

    网址:http://maven.apache.org/plugins/index.html

    下载地址:http://repo1.maven.org/maven2/org/apache/maven/plugins/


    先将我用到的自定义变量贴过来,防止插件中出现一些变量,大家不理解   


    Java代码   
    <!-- 全局属性配置 -->  
    <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插件配置  

    一、编译插件   

    Java代码   
    <!-- 编译插件 -->  

    <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-compiler-plugin</artifactId>
       <version>3.1</version>
       <configuration>
          <source>1.8</source>
          <target>1.8</target>
       </configuration>
    </plugin>

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

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

    Java代码   

    <!-- 设置资源文件的编码方式 -->  
    <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>
                
    <!-- 将配置文件复制到target目录的config目录底下 -->
                 <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <executions>
                        <execution> <!-- 复制配置文件 -->
                            <id>copy-resources</id>
                            <phase>package</phase>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <configuration>
                                <resources>
                                    <resource>
                                        <directory>src/main/resources</directory>
                                        <includes>
                                            <include>application.yml</include>
                                            <!--<include>*.txt</include>-->
                                            <include>logback*/**</include>
                                        </includes>
                                    </resource>
                                </resources>
                                <outputDirectory>${project.build.directory}/config</outputDirectory>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

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

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

    Java代码   
    <!-- 依赖插件 -->  

    <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>  
    <!-- 将包打包到target目录的lib目录底下,不打在jar包内 --> 
                 <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>copy</id>
                            <phase>package</phase>
                            <goals>
                                <goal>copy-dependencies</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>${project.build.directory}/lib</outputDirectory>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>


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

    四、生成源代码jar包   
    Java代码   

    <!-- 源代码打包插件 -->  
    <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包  

    五、将项目打成jar包   
    Java代码   
    <!-- 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>  
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <configuration>
                        <archive>
                            <!-- 添加index则不从mainfest中读取classpath,而是从Index.list中读取 -->
                            <!--  <index>true</index> -->
                            <manifest>
                                <!-- 当用户使用 lib命令执行JAR文件时,使用该元素定义将要执行的类名 -->  
                                <mainClass>com.whalecloud.uip.datasource.WhaleUipDatasourceApplication</mainClass>
                                <!-- 告知 maven-jar-plugin添加一个 Class-Path元素到 MANIFEST.MF文件,以及在Class-Path元素中包括所有依赖项 -->  
                                <addClasspath>true</addClasspath>
                                <!-- 所有的依赖项应该位于 lib文件夹 -->  
                                <classpathPrefix>lib/</classpathPrefix>
                            </manifest>
    
                            <manifestEntries>
                                <Class-Path>./</Class-Path>
                            </manifestEntries>
    
                        </archive>
                        <excludes>
                            <exclude>*.yml</exclude>
                        </excludes>
                    </configuration>
                </plugin>




    原文链接:https://blog.csdn.net/qq_23167527/article/details/67635610

  • 相关阅读:
    冬季小学期 NIIT公司 web前端培训 javascript
    冬季小学期 NIIT公司 web前端培训 CSS
    冬季小学期 NIIT公司 web前端培训 HTML
    操作系统 思维导图 百度脑图
    验证码识别系统以及人工智能总结 神经网络encog图像识别入门
    eclipse 常用操作 持续更新
    大话设计模式笔记 访客模式
    [百度杯-二月场](Misc-Web)爆破-2
    [百度杯-二月场](Misc-Web)爆破-1
    jdk1.7中的常量池
  • 原文地址:https://www.cnblogs.com/linhongwenBlog/p/11680491.html
Copyright © 2011-2022 走看看