maven项目pom文件(2)-build使用

来源:互联网 发布:淘宝比价插件 编辑:程序博客网 时间:2024/06/18 08:19

build元素概念性的划分为两个部分:BaseBuild和poject build。

<!-- "Project Build" contains more elements than just the BaseBuild set -->      <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/。        -->        <finalName>edu-service-user</finalName>        <resources>             <!-- 1、resources:一个resource元素的列表,每一个都描述与项目关联的文件是什么和在哪里;                 2、targetPath:指定build后的resource存放的文件夹。该路径默认是basedir。通常被打包在JAR中的resources的目标路径为META-INF;                 3、filtering:true/false,表示为这个resource,filter是否激活。                 4、directory:定义resource所在的文件夹,默认为${basedir}/src/main/resources;                 5、includes:指定作为resource的文件的匹配模式,用*作为通配符;                 6、excludes:指定哪些文件被忽略,如果一个文件同时符合includes和excludes,则excludes生效;                 7、testResources:定义和resource类似,但只在test时使用,默认的test resource文件夹路径是${basedir}/src/test/resources,test resource不被部署。            -->            <resource>                <targetPath>${project.build.directory}/classes</targetPath>                <directory>src/main/resources</directory>                <filtering>true</filtering>                <includes>                    <include>**/*.xml</include>                    <include>**/*.properties</include>                </includes>            </resource>            <!-- 整合dubbo框架采用结合com.alibaba.dubbo.container.Main -->            <resource>                <targetPath>${project.build.directory}/classes/META-INF/spring</targetPath>                <directory>src/main/resources/spring</directory>                <filtering>true</filtering>                <includes>                    <include>spring-context.xml</include>                </includes>            </resource>        </resources>        <pluginManagement>        <!-- pluginManagement是表示插件声明,即你在项目中的pluginManagement下声明了插件,             Maven不会加载该插件,pluginManagement声明可以被继承。pluginManagement一般是用来在父POM中定义,             提供给子POM使用,子POM也可以覆盖这个定义,而且你在父POM中定义了版本之后,子模块中直接应用groupId和artifactId,             而不用指定版本,同时也方便统一管理;而在父POM中的pluginManagement并不会介入到Maven的生命周期。plugins就是直接引入一个plugin,             而且可以绑定到Maven相关的生命周期上。pluginManagement主要是为了统一管理插件,             确保所有子POM使用的插件版本保持一致,类似dependencies和dependencyManagement。        -->            <plugins>                <!-- 解决Maven插件在Eclipse内执行了一系列的生命周期引起冲突 -->                <plugin>                    <groupId>org.eclipse.m2e</groupId>                    <artifactId>lifecycle-mapping</artifactId>                    <version>1.0.0</version>                    <configuration>                        <lifecycleMappingMetadata>                            <pluginExecutions>                                <pluginExecution>                                    <pluginExecutionFilter>                                        <groupId>org.apache.maven.plugins</groupId>                                        <artifactId>maven-dependency-plugin</artifactId>                                        <versionRange>[2.0,)</versionRange>                                        <goals>                                            <goal>copy-dependencies</goal>                                        </goals>                                    </pluginExecutionFilter>                                    <action>                                        <ignore />                                    </action>                                </pluginExecution>                            </pluginExecutions>                        </lifecycleMappingMetadata>                    </configuration>                </plugin>            </plugins>        </pluginManagement>        <plugins>            <!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 -->            <plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-jar-plugin</artifactId>                <configuration>                    <classesDirectory>target/classes/</classesDirectory>                    <archive>                        <manifest>                            <mainClass>com.alibaba.dubbo.container.Main</mainClass>                            <!-- 打包时 MANIFEST.MF文件不记录的时间戳版本 -->                            <useUniqueVersions>false</useUniqueVersions>                            <addClasspath>true</addClasspath>                            <classpathPrefix>lib/</classpathPrefix>                        </manifest>                        <manifestEntries>                            <Class-Path>.</Class-Path>                        </manifestEntries>                    </archive>                </configuration>            </plugin>            <plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-dependency-plugin</artifactId>                <executions>                    <execution>                        <id>copy-dependencies</id>                        <phase>package</phase>                        <goals>                            <goal>copy-dependencies</goal>                        </goals>                        <configuration>                            <type>jar</type>                            <includeTypes>jar</includeTypes>                            <useUniqueVersions>false</useUniqueVersions>                            <outputDirectory>                                ${project.build.directory}/lib                            </outputDirectory>                        </configuration>                    </execution>                </executions>            </plugin>        </plugins>    </build>
原创粉丝点击