maven中的pom

Posted java一去不回头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven中的pom相关的知识,希望对你有一定的参考价值。

pom(project object model)也就是项目对象模型,每个maven项目中都有一盒pom.xml文件,专门用于管项目

super pom

类似于java中的Object类,maven中的每个maven醒目的pom.xml都会继承这个配置文件,super pom中定义了maven项目的文件夹结构和仓库的位置等(可以通过settings.xml文件来重写)

project>
  <modelVersion>4.0.0</modelVersion>
  <name>Maven Default Project</name>
 
  <repositories>
    <repository>
      <id>central</id>
      <name>Maven Repository Switchboard</name>
      <layout>default</layout>
      <url>http://repo1.maven.org/maven2</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>
 
  <pluginRepositories>
    <pluginRepository>
      <id>central</id>
      <name>Maven Plugin Repository</name>
      <url>http://repo1.maven.org/maven2</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <releases>
        <updatePolicy>never</updatePolicy>
      </releases>
    </pluginRepository>
  </pluginRepositories>
 
  <build>
    <directory>target</directory>
    <outputDirectory>target/classes</outputDirectory>
    <finalName>${artifactId}-${version}</finalName>
    <testOutputDirectory>target/test-classes</testOutputDirectory>
    <sourceDirectory>src/main/java</sourceDirectory>
    <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
    <testSourceDirectory>src/test/java</testSourceDirectory>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>src/test/resources</directory>
      </testResource>
    </testResources>
  </build>
 
  <reporting>
    <outputDirectory>target/site</outputDirectory>
  </reporting>
 
  <profiles>
    <profile>
      <id>release-profile</id>
 
      <activation>
        <property>
          <name>performRelease</name>
        </property>
      </activation>
 
      <build>
        <plugins>
          <plugin>
            <inherited>true</inherited>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
 
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <inherited>true</inherited>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
 
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <inherited>true</inherited>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
 
            <configuration>
              <updateReleaseInfo>true</updateReleaseInfo>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
 
</project>

maven pom文件中主要有一下几个元素

  • dependencies 定义依赖
  • developers and contributors 
  • plugin lists (including reports) 插件列表
  • plugin executions with matching ids 插件
  • plugin configuration 插件配置
  • resources配置项目源文件

 

项目之间的关系

父子关系

在pom中声明parent元素即可指定这个项目的父项目

relativePath用于指定父pom.xml文件的位置

聚合关系

将一个maven项目声明为另一个项目的模块

pom

 

以上是关于maven中的pom的主要内容,如果未能解决你的问题,请参考以下文章

为啥不能使用pom文件中的maven依赖?

pom.xml 中的 JDBC Maven 依赖关系

Maven-POM

有没有办法从 text.file 读取文本并将其设置为 pom.xml maven 中的 maven 属性?

Maven build之pom.xml文件中的Build配置

maven中的pom