# `pom.xml` [TOC] ###### tags: `maven` `java` `xml` --- ## /project/modelVersion ## /project/parent ## /project/groupId ## /project/artifactId ## /project/version ## /project/packaging ## /project/name ## /project/description ## /project/url The URL to the project's homepage. **Default value is**: - `parent` value [+ path adjustment] + (`artifactId` or `project.directory` property), - or just `parent` value if project's `child.project.url.inherit.append.path="false"`. ## /project/inceptionYear ## /project/organization ## /project/licenses ## /project/developers ## /project/contributors ## /project/mailingLists ## /project/prerequisites ## /project/modules ## /project/scm ## /project/issueManagement ## /project/ciManagement ## /project/distributionManagement Distribution information for a project that enables deployment of the site and artifacts to remote web servers and repositories respectively. > This elements describes all that pertains to distribution for a project. It is primarily used for deployment of artifacts and the site produced by the build. ### /project/distributionManagement/repository Information needed to deploy the artifacts generated by the project to a remote repository. > Repository contains the information needed for deploying to the remote repository. ### /project/distributionManagement/repository/uniqueVersion Whether to assign snapshots a unique version comprised of the timestamp and build number, or to use the same version each time. #### Type `xs:boolean` #### Default `true` ### /project/distributionManagement/repository/releases How to handle downloading of releases from this repository. ### /project/distributionManagement/repository/snapshots How to handle downloading of snapshots from this repository. ### /project/distributionManagement/repository/id A unique identifier for a repository. This is used to match the repository to configuration in the `settings.xml` file, for example. Furthermore, the identifier is used during POM inheritance and profile injection to detect repositories that should be merged. #### Type `xs:string` ### /project/distributionManagement/repository/name Human readable name of the repository. #### Type `xs:string` ### /project/distributionManagement/repository/url The url of the repository, in the form `protocol://hostname/path`. #### Type `xs:string` ### /project/distributionManagement/repository/layout The type of layout this repository uses for locating and storing artifacts - can be `legacy` or `default`. #### Type `xs:string` #### Default `default` ### /project/distributionManagement/snapshotRepository Information needed to deploy the artifacts generated by the project to a remote repository. > Repository contains the information needed for deploying to the remote repository. ### /project/distributionManagement/snapshotRepository/uniqueVersion Whether to assign snapshots a unique version comprised of the timestamp and build number, or to use the same version each time. #### Type `xs:boolean` #### Default `true` ### /project/distributionManagement/snapshotRepository/releases How to handle downloading of releases from this repository. ### /project/distributionManagement/snapshotRepository/snapshots How to handle downloading of snapshots from this repository. ### /project/distributionManagement/snapshotRepository/id A unique identifier for a repository. This is used to match the repository to configuration in the `settings.xml` file, for example. Furthermore, the identifier is used during POM inheritance and profile injection to detect repositories that should be merged. #### Type `xs:string` ### /project/distributionManagement/snapshotRepository/name Human readable name of the repository. #### Type `xs:string` ### /project/distributionManagement/snapshotRepository/url The url of the repository, in the form `protocol://hostname/path`. #### Type `xs:string` ### /project/distributionManagement/snapshotRepository/layout The type of layout this repository uses for locating and storing artifacts - can be `legacy` or `default`. #### Type `xs:string` #### Default `default` ### /project/distributionManagement/site Information needed for deploying the web site of the project. ### /project/distributionManagement/downloadUrl The URL of the project's download page. If not given users will be referred to the homepage given by `url`. This is given to assist in locating artifacts that are not in the repository due to licensing restrictions. #### Type `xs:string` ### /project/distributionManagement/relocation Relocation information of the artifact if it has been moved to a new group ID and/or artifact ID. ### /project/distributionManagement/status Gives the status of this artifact in the remote repository. This must not be set in your local project, as it is updated by tools placing it in the reposiory. Valid values are: - `none` (default), - `converted` (repository manager converted this from an Maven 1 POM), - `partner` (directly synced from a partner Maven 2 repository), - `deployed` (was deployed from a Maven 2 instance), - `verified` (has been hand verified as correct and final). #### Type `xs:string` ## /project/properties Properties that can be used throughout the POM as a substitution, and are used as filters in resources if enabled. The format is `<name>value</name>`. ## /project/dependencyManagement Default dependency information for projects that inherit from this one. The dependencies in this section are not immediately resolved. Instead, when a POM derived from this one declares a dependency described by a matching `groupId` and `artifactId`, the `version` and other values from this section are used for that dependency if they were not already specified. > Section for management of default dependency information for use in a group of POMs. ### /project/dependencyManagement/dependencies ## /project/dependencies ## /project/repositories ## /project/pluginRepositories ## /project/build Information required to build the project. > The `<build/>` element contains informations required to build the project. Default values are defined in Super POM. ### /project/build/sourceDirectory This element specifies a directory containing the source of the project. The generated build system will compile the sources from this directory when the project is built. The path given is relative to the project descriptor. The default value is `src/main/java`. #### Type `xs:string` ### /project/build/scriptSourceDirectory This element specifies a directory containing the script sources of the project. This directory is meant to be different from the sourceDirectory, in that its contents will be copied to the output directory in most cases (since scripts are interpreted rather than compiled). The default value is `src/main/scripts`. #### Type `xs:string` ### /project/build/testSourceDirectory This element specifies a directory containing the unit test source of the project. The generated build system will compile these directories when the project is being tested. The path given is relative to the project descriptor. The default value is `src/test/java`. #### Type `xs:string` ### /project/build/outputDirectory The directory where compiled application classes are placed. The default value is `target/classes`. #### Type `xs:string` ### /project/build/testOutputDirectory The directory where compiled test classes are placed. The default value is `target/test-classes`. #### Type `xs:string` ### /project/build/extensions A set of build extensions to use from this project. ### /project/build/defaultGoal The default goal (or phase in Maven 2) to execute when none is specified for the project. Note that in case of a multi-module build, only the default goal of the top-level project is relevant, i.e. the default goals of child modules are ignored. Since Maven 3, multiple goals/phases can be separated by whitespace. #### Type `xs:string` ### /project/build/resources This element describes all of the classpath resources such as properties files associated with a project. These resources are often included in the final package. The default value is `src/main/resources`. ### /project/build/testResources This element describes all of the classpath resources such as properties files associated with a project's unit tests. The default value is `src/test/resources`. ### /project/build/directory The directory where all files generated by the build are placed. The default value is `target`. #### Type `xs:string` ### /project/build/finalName The filename (excluding the extension, and with no path information) that the produced artifact will be called. The default value is `${artifactId}-${version}`. #### Type `xs:string` ### /project/build/filters The list of filter properties files that are used when filtering is enabled. ### /project/build/pluginManagement Default plugin information to be made available for reference by projects derived from this one. This plugin configuration will not be resolved or bound to the lifecycle unless referenced. Any local configuration for a given plugin will override the plugin's entire definition here. ### /project/build/plugins The list of plugins to use. ## /project/reports ## /project/reporting ## /project/profiles