篇二:pom.xml文件
pom.xml文件是maven工程的标志性文件
一、基础属性定义
1、jar坐标定义
<modelVersion>4.0.0</modelVersion> <groupId>com.spider</groupId> <artifactId>com.spider.webmagic</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging>
2、name、url无实质意义的设置
<!-- 项目的名称, Maven产生的文档用 -->
<name>guduo-common-parent</name>
<!-- 项目主页的URL, Maven产生的文档用 -->
<url>http://maven.apache.org</url>
3、nexus私服配置
<distributionManagement> <repository> <id>nexus-releases</id> <name>Nexus Release Repository</name> <url>http://192.168.1.90:8081/nexus/content/repositories/public/</url> </repository> <snapshotRepository> <id>nexus-snapshots</id> <name>Nexus Snapshot Repository</name> <url>http://192.168.1.90:8081/nexus/content/repositories/snapshots/</url> </snapshotRepository> </distributionManagement>
4、参数标签化配置:全局统一配置,多处使用、一处修改
标签化配置属性值,在需要用的地方${common-model.version}
<properties> <common-model.version>1.0-SNAPSHOT</common-model.version> <common-interface.version>1.0-SNAPSHOT</common-interface.version> </properties>
二、工程依赖
1、dependency依赖jar包
2、父工程中dependencyManagement配置jar包版本,需要用的地方,只需要引入groupId/artifactId
3、scope定义jar范围
三、项目构建
1、resources:资源文件
资源文件配置,maven工程默认的文件路径src/main/java、src/main/resources,工程打包时,默认会把src/main/java路径下的.java文件打包,以 及src/main/resources中的各种配置文件。以下几种情况需要配置
a、配置文件存在于src/main/java目录下,不会自动打包到jar包中;
b、只需要打包特定的配置文件,另外一些文件不需要打包
学习地址:http://www.cnblogs.com/pixy/p/4798089.html
http://casheen.iteye.com/blog/540385
<build> ....... <resources> <resource> <directory>src/main/resources</directory> <!-- 不打包文件列表 --> <excludes> <exclude>**/*.properties</exclude> <exclude>**/*.xml</exclude> </excludes> <filtering>false</filtering> </resource> <resource> <!-- 读取文件地址 --> <directory>src/main/java</directory> <!-- 打包地址 --> <targetPath>${project.build.directory}/classes</targetPath> <!-- 打包文件列表 --> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <!-- false设置配置文件中${key}不替换配置的参数,原封不动 --> <filtering>false</filtering> </resource> </resources> ...... </build>
2、piugins:项目打包部署
pom工程中pluginManagement中定义的插件,module工程(子工程)中引入只需要groupId、artifactId就可以,如果需要特殊配置,加上会覆盖父工程的配置。
<build> ...... <plugins> <!-- 编译插件,建议放在pom工程plugins中,统一部署maven工程编译时jdk版本 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <failOnError>true</failOnError> <verbose>true</verbose> <fork>true</fork> <compilerArgument>-nowarn</compilerArgument> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> <!-- 发布插件,建议放在pom工程plugins中,自动发布到远程本地库或远程私有库 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>2.7</version> <configuration> <uniqueVersion>false</uniqueVersion> </configuration> </plugin> <!-- 源码插件,建议放在pom工程plugins中,生成源码jar包,即***-***-sources.jar --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.1.2</version> <!-- 发布时自动将源码同时发布的配置 --> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugins> <pluginManagement> <!-- 打包插件 --> <plugins> <!-- 将项目打包为可执行jar文件,包括第三方依赖jar引用路径配置到manifest文件中,否则寻找不到第三方jar --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <archive> <classesDirectory>target/classes/</classesDirectory> <!-- 生成的jar中,不要包含pom.xml和pom.properties这两个文件 --> <addMavenDescriptor>false</addMavenDescriptor> <manifest> <!-- 是否要把第三方jar放到manifest的classpath中 --> <addClasspath>true</addClasspath> <!-- 生成的manifest中classpath的前缀,因为要把第三方jar放到lib目录下,所以classpath的前缀是lib/ --> <classpathPrefix>${jar-class-path-prefix}</classpathPrefix> <!-- 应用的main class,如果用的dubbo,需要引入dubbo的main:com.alibaba.dubbo.container.Main --> <mainClass>${jar-main-class}</mainClass> <!-- 打包时 MANIFEST.MF文件不记录的时间戳版本 --> <useUniqueVersions>false</useUniqueVersions> </manifest> <!-- manifest文件中classpath独立添加部分 --> <manifestEntries> <Class-Path>.</Class-Path> </manifestEntries> </archive> <!-- <outputDirectory>${jar-output-dir}</outputDirectory> --> </configuration> </plugin> <!-- 第三方依赖jar统一存放到指定路径,maven-jar-plugin只是导入了第三方jar的引用路径 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy</id> <phase>install</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <type>jar</type> <includeTypes>jar</includeTypes> <useUniqueVersions>false</useUniqueVersions> <!-- 依赖的第三方jar排除在外,新环境发布需要注释掉此行 --> <excludeGroupIds>com.gohihi.api</excludeGroupIds> <!-- 依赖jar包存放目录 --> <outputDirectory> ${project.build.directory}/lib/ </outputDirectory> </configuration> </execution> </executions> </plugin> <!-- 解决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> <!-- 单元测试插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.7.2</version> <configuration> <skip>true</skip> <testFailureIgnore>true</testFailureIgnore> </configuration> </plugin> </plugins> <pluginManagement> ...... </build>
3、defaultGoal:自动批量打包,Run As --》maven-build,当Goals(mvn命令:clean、package、install)为空时,设置的默认值
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号