首页 > 其他分享 >pom.xml中build标签

pom.xml中build标签

时间:2023-04-06 11:32:56浏览次数:34  
标签:xml ... plugin 配置 maven pom build

1.分类

       (1)全局配置(project build)

                 针对整个项目的所有情况都有效

       (2)配置(profile build)

                 针对不同的profile配置


1. <project xmlns="http://maven.apache.org/POM/4.0.0"  
2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0  
4. >  
5.   …  
6. >  
7. <build>…</build>  
8. <profiles>  
9. <profile>  
10. >  
11. <build>…</build>  
12. </profile>  
13. </profiles>  
14. </project>

 

2.配置说明

       (1)基本元素



1. <build>  
2. <defaultGoal>install</defaultGoal>  
3. <directory>${basedir}/target</directory>  
4. <finalName>${artifactId}-${version}</finalName>  
5. <filters>  
6. <filter>filters/filter1.properties</filter>  
7. </filters>  
8.          ...  
9. </build>

               1)defaultGoal

                    执行build任务时,如果没有指定目标,将使用的默认值。

                    如上配置:在命令行中执行mvn,则相当于执行mvn install

              2)directory
                     build目标文件的存放目录,默认在${basedir}/target目录

              3)finalName

                     build目标文件的名称,默认情况为${artifactId}-${version}

              4)filter

                     定义*.properties文件,包含一个properties列表,该列表会应用到支持filter的resources中。

                     也就是说,定义在filter的文件中的name=value键值对,会在build时代替${name}值应用到resources中。

                     maven的默认filter文件夹为${basedir}/src/main/filters

 

        (2)Resources配置

                 用于包含或者排除某些资源文件


1. <build>  
2.         ...  
3. <resources>  
4. <resource>  
5. <targetPath>META-INF/plexus</targetPath>  
6. <filtering>false</filtering>  
7. <directory>${basedir}/src/main/plexus</directory>  
8. <includes>  
9. <include>configuration.xml</include>  
10. </includes>  
11. <excludes>  
12. <exclude>**/*.properties</exclude>  
13. </excludes>  
14. </resource>  
15. </resources>  
16. <testResources>  
17.         ...  
18. </testResources>  
19.     ...  
20. </build>

              1)resources

                    一个resources元素的列表。每一个都描述与项目关联的文件是什么和在哪里

              2)targetPath

                    指定build后的resource存放的文件夹,默认是basedir。

                    通常被打包在jar中的resources的目标路径是META-INF

             3)filtering

                    true/false,表示为这个resource,filter是否激活
             4)directory

                    定义resource文件所在的文件夹,默认为${basedir}/src/main/resources

             5)includes

                    指定哪些文件将被匹配,以*作为通配符

             6)excludes

                   指定哪些文件将被忽略

             7)testResources

                   定义和resource类似,只不过在test时使用

 

        (3)plugins配置

                  用于指定使用的插件


1. <build>  
2.     ...  
3. <plugins>  
4. <plugin>  
5. <groupId>org.apache.maven.plugins</groupId>  
6. <artifactId>maven-jar-plugin</artifactId>  
7. <version>2.0</version>  
8. <extensions>false</extensions>  
9. <inherited>true</inherited>  
10. <configuration>  
11. <classifier>test</classifier>  
12. </configuration>  
13. <dependencies>...</dependencies>  
14. <executions>...</executions>  
15. </plugin>  
16. </plugins>  
17. </build>

                1)GAV

                      指定插件的标准坐标

                2)extensions

                      是否加载plugin的extensions,默认为false

                3)inherited

                      true/false,这个plugin是否应用到该pom的孩子pom,默认为true

                4)configuration

                      配置该plugin期望得到的properties

                5)dependencies

                      作为plugin的依赖

                6)executions

                      plugin可以有多个目标,每一个目标都可以有一个分开的配置,可以将一个plugin绑定到不同的阶段

                      假如绑定antrun:run目标到verify阶段


1. <build>  
2. <plugins>  
3. <plugin>  
4. <artifactId>maven-antrun-plugin</artifactId>  
5. <version>1.1</version>  
6. <executions>  
7. <execution>  
8. <id>echodir</id>  
9. <goals>  
10. <goal>run</goal>  
11. </goals>  
12. <phase>verify</phase>  
13. <inherited>false</inherited>  
14. <configuration>  
15. <tasks>  
16. <echo>Build Dir: ${project.build.directory}</echo>  
17. </tasks>  
18. </configuration>  
19. </execution>  
20. </executions>  
21. </plugin>  
22. </plugins>  
23. </build>

                           id:标识,用于和其他execution区分。当这个阶段执行时,它将以这个形式展示[plugin:goal execution: id]。在这里为: [antrun:run execution: echodir]
                           goals:目标列表

                          phase:目标执行的阶段

                          inherit:子类pom是否继承

                          configuration:在指定目标下的配置

        (4)pluginManagement配置

                   pluginManagement的配置和plugins的配置是一样的,只是用于继承,使得可以在孩子pom中使用。

                   父pom:


1. <build>  
2.     ...  
3. <pluginManagement>  
4. <plugins>  
5. <plugin>  
6. <groupId>org.apache.maven.plugins</groupId>  
7. <artifactId>maven-jar-plugin</artifactId>  
8. <version>2.2</version>  
9. <executions>  
10. <execution>  
11. <id>pre-process-classes</id>  
12. <phase>compile</phase>  
13. <goals>  
14. <goal>jar</goal>  
15. </goals>  
16. <configuration>  
17. <classifier>pre-process</classifier>  
18. </configuration>  
19. </execution>  
20. </executions>  
21. </plugin>  
22. </plugins>  
23. </pluginManagement>  
24.     ...  
25. </build>

                 则在子pom中,我们只需要配置:



1. <build>  
2.     ...  
3. <plugins>  
4. <plugin>  
5. <groupId>org.apache.maven.plugins</groupId>  
6. <artifactId>maven-jar-plugin</artifactId>  
7. </plugin>  
8. </plugins>  
9.     ...  
10. </build>

               这样就大大简化了孩子pom的配置



标签:xml,...,plugin,配置,maven,pom,build
From: https://blog.51cto.com/u_15535797/6172481

相关文章

  • A tutorial that will show you how to build an instant messaging app with Sinch.
     http://stackoverflow.com/questions/26247986/unsatisfiedlinkerror-couldnt-load-sinch-android-rtc-from-loader-dalvik-systemhttps://www.sinch.com/tutorials/android-messaging-tutorial-using-sinch-and-parse/https://github.com/sinch/android-messaging-tutorial......
  • 第十九篇 JSON 、XML、E4X
    bycaixin深圳JSON定义JSON:JavaScriptObjectNotation【JavaScript对象表示法】JSON(JavaScriptObjectNotation,JS对象标记)是一种轻量级的数据交换格式,目前使用特别广泛。JSON是存储和交换文本信息的语法。类似XML。JSON采用完全独立于任何程序语言的文本格式,......
  • uni-app:ios/android中的nvue和vue页面加载自定义字体(hbuilderx 3.7.3)
    一,官方文档地址:https://uniapp.dcloud.net.cn/tutorial/nvue-api.html#addrule二,代码1,nvue页面:模板<viewclass="listTitle">{{item.title}}</view>......
  • java -- Stringbuild、Date和Calendar类
    Stringbuild类由于String类的对象内容不可改变,每次拼接都会构建一个新的String对象,既耗时,又浪费内存空间这时需要通过java提供的StringBuild类解决这个问题StringBuilder又称为可变字符序列,它是一个类似于String的字符串缓冲区,可以看作是一个容器,容器中可以装很多字符串可......
  • uni-app:tabbar自定义中间凸起按钮的tabbar(hbuilderx 3.7.3)
    一,官方文档地址:https://uniapp.dcloud.net.cn/collocation/pages.html#tabbarhttps://uniapp.dcloud.net.cn/api/ui/tabbar.html#ontabbarmidbuttontap二,代码1,pages.json"tabBar":{"color":"#7A7E83",//字体颜色"sel......
  • Spring 源码解析 - xml解析封装BeanDefinition(1)
    -  XML解析封装BeanDefinition  断点在 DefaultListableBeanFacy,registerBeanDefinition()二 如果给属性赋值 三 各种postprocessor       ##2、Spring套路点-1、AbstractBeanDefinition看看何时给容器中注入了什么组件-2、BeanFactory让......
  • Flutter之GetX之GetBuilder
    Flutter之GetX之GetBuilderGetX是Flutter的一个非常强力的三方库,包含了非常多的功能,比如状态管理、路由管理、国际化、路由中间件、主题、数据库等等今天简单介绍一下状态管理中的GetBuilder实现有关状态管理当你的Flutter应用的状态发生改变时(例如,用户在设置界面中点击......
  • kubegres 源码解析(二) kubebuilder简介
    摘要Kubegres完全使用KubebuilderV3版本开发,在对Kubegres进行代码解析前,首先了解一下Kubebuilder,本文尝试理清几个问题:如何使用Kubebuilder生成Controller/Operator项目?项目结构是什么,每个文件的作用是什么?具体到最重要的几个文件,代码如何组织,功......
  • vue项目启动时 `webpack-dev-server –inline –progress –config build/webpack.dev
    vue项目在npmrundev时报错[email protected]:webpack-dev-server--inline--progress--configbuild/webpack.dev.conf.js解决这类问题主要分两种情况这个项目已经构建好的项目,你只是从git、snv或者其他地方引入,别人能运行你不能运行这是一个新构建的vue项目第一......
  • java学习日记20230406-StringBuilder,StringBuffer,String比较
    StringBuffer,StringBuilder,String比较: StringBuilder和StringBuffer非常类似,均代表可变的字符序列,而且方法相同;String:不可变字符序列,效率低,但是复用率高;StringBuffer:可变字符序列,效率较高,线程安全;StringBuider:可变字符序列,效率极高,线程不安全  String使用注意说明: ......