maven--pom.xml详解
来源:互联网 发布:ai软件下载中文版 mac 编辑:程序博客网 时间:2024/06/05 20:14
参考http://maven.apache.org/pom.html
Introduction
- POM : Project Object Model
top elements
<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"> <modelVersion>4.0.0</modelVersion> <!-- The Basics --> <groupId/> <artifactId/> <version/> <!-- value: pom, jar, maven-plugin, ejb, war, ear, rar, par; default: jar --> <packaging/> <dependencies/> <parent/> <dependencyManagement/> <modules/> <properties/> <!-- Build Settings --> <build/> <reporting/> <!-- More Project Information --> <name/> <description/> <url/> <inceptionYear/> <licenses/> <organization/> <developers/> <contributors/> <!-- Environment Settings --> <issueManagement/> <ciManagement/> <mailingLists/> <scm/> <prerequisites/> <repositories/> <pluginRepositories/> <distributionManagement/> <profiles/></project>
POM Relationships
1. Dependencies
- scope
- compile: default, available in all classpaths. propagated(传播)
- provided: available on the compilation and test classpath,not propagated
- runtime: in the runtime and test classpaths, but not the compile classpath.
- test: in the test compilation and execution phases.
- system: like provided
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.0</version> <type>jar</type> <scope>test</scope> <optional>true</optional> <!-- 区分jdk1.5,jdk1.4等 --> <classifier/> <systemPath/> <exclusions/> </dependency> </dependencies>
2. Inheritance
- 大部分元素都可以继承,除了一下几个:
- artifactId
- name
- prerequisites
- Super POM,所有pom的父对象。类似java.lang.Object
<!-- 可以使用 mvn help:effective-pom 可以对比源pom.xml来验证 --><project> <modelVersion>4.0.0</modelVersion> <repositories> <repository> <id>central</id> <name>Central Repository</name> <url>http://repo.maven.apache.org/maven2</url> <layout>default</layout> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>central</id> <name>Central Repository</name> <url>http://repo.maven.apache.org/maven2</url> <layout>default</layout> <snapshots> <enabled>false</enabled> </snapshots> <releases> <updatePolicy>never</updatePolicy> </releases> </pluginRepository> </pluginRepositories> <build> <directory>${project.basedir}/target</directory> <outputDirectory>${project.build.directory}/classes</outputDirectory> <finalName>${project.artifactId}-${project.version}</finalName> <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory> <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory> <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory> <testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory> <resources> <resource> <directory>${project.basedir}/src/main/resources</directory> </resource> </resources> <testResources> <testResource> <directory>${project.basedir}/src/test/resources</directory> </testResource> </testResources> <pluginManagement> <!-- NOTE: These plugins will be removed from future versions of the super POM --> <!-- They are kept for the moment as they are very unlikely to conflict with lifecycle mappings (MNG-4453) --> <plugins> <plugin> <artifactId>maven-antrun-plugin</artifactId> <version>1.3</version> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.2-beta-5</version> </plugin> <plugin> <artifactId>maven-dependency-plugin</artifactId> <version>2.1</version> </plugin> <plugin> <artifactId>maven-release-plugin</artifactId> <version>2.0</version> </plugin> </plugins> </pluginManagement> </build> <reporting> <outputDirectory>${project.build.directory}/site</outputDirectory> </reporting> <profiles> <!-- NOTE: The release profile will be removed from future versions of the super POM --> <profile> <id>release-profile</id> <activation> <property> <name>performRelease</name> <value>true</value> </property> </activation> <build> <plugins> <plugin> <inherited>true</inherited> <artifactId>maven-source-plugin</artifactId> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <inherited>true</inherited> <artifactId>maven-javadoc-plugin</artifactId> <executions> <execution> <id>attach-javadocs</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <inherited>true</inherited> <artifactId>maven-deploy-plugin</artifactId> <configuration> <updateReleaseInfo>true</updateReleaseInfo> </configuration> </plugin> </plugins> </build> </profile> </profiles></project>
3. Aggregation (聚合)
<modules> <module>my-project</module> <module>another-project</module></modules>
Properties
等同: http://blog.csdn.net/tmriver/article/details/78839236#Properties
Build
otter,mq打包,
http://www.cnblogs.com/yangxia-test/category/675579.html
Reporting
阅读全文
0 0
- maven pom.xml详解
- maven POM.xml详解
- maven pom.xml详解
- maven POM.xml详解
- maven POM.xml详解
- maven POM.xml详解
- maven pom.xml详解
- maven pom.xml详解
- 【maven】 pom.xml详解
- maven pom.xml详解
- maven pom.xml详解
- maven pom.xml详解
- maven pom.xml详解
- maven POM.xml详解
- maven pom.xml 详解
- maven pom.xml详解
- maven pom.xml详解
- maven pom.xml详解
- Layui之表单form
- 爬取应用宝首页、应用分类、应用以及应用详情
- js中ajax请求的两种方式
- leetcode 675. Cut Off Trees for Golf Event 广度优先遍历BFS
- Android数据库高手秘籍(二)——创建表和LitePal的基本用法
- maven--pom.xml详解
- 数据库优化问题详解
- Linux下编译caffe报错catastrophic error: error while writing generated C++ file: No space left on device
- Linux下编译caffe报错catastrophic error: error while writing generated C++ file: No space left on device
- 落单的数
- 网络基础知识梳理
- Elastic-Job任务重复执行问题解决
- win8电脑调整分区后分区丢失的资料怎么找回
- Leetcode Longest Common Prefix 解题报告