Maven Parent POM

And*_*Dev 5 pom.xml maven parent-pom

我是Maven的新手,最近安装了nexus.现在我想创建一个父POM,以便我公司内的所有项目都可以使用它.这是我的父母POM.

<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
    <modelVersion>1.0.0</modelVersion>
    <groupId>com.mycomp</groupId>
    <artifactId>parent-pom-android</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>apk</packaging>
    <name>Android Parent POM</name>

    <repositories>
        <repository>
            <id>nexus-repo</id>
            <url>http://10.10.10.230:8081/nexus/content/groups/public</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>nexus-repo</id>
            <name>confiz-repo</name>
            <url>http://10.10.10.230:8081/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>
 </project>
Run Code Online (Sandbox Code Playgroud)

现在我在哪里放置这个POM文件,以便我的其他POM文件可以继承它?

cow*_*wls 10

如果你将这个父pom放在一个名为android的文件夹中,那么将在同一个文件夹中使用它.

  • Android的
  • 的pom.xml
  • Android的项目1
    • 的pom.xml

然后,项目pom.xml可以通过将其放在pom.xml的顶部来使用父pom:

<parent>
    <groupId>parent.group</groupId>
    <artifactId>parent.artifact</artifactId>
    <version>${version.number}</version>
    <relativePath>../</relativePath>
</parent>
Run Code Online (Sandbox Code Playgroud)

然后,您可以在将来扩展此体系结构,如下所示:

  • 移动
    • 的pom.xml
    • Android的
      • 的pom.xml
      • Android的项目1
      • Android的项目2
    • 苹果手机
      • 的pom.xml
      • iphone项目-1

这允许您为Android项目定义公共配置,为iphone项目定义公共配置以及为所有移动项目定义公共配置.等等


Gil*_*zan 4

您必须将项目部署到内部 Maven 存储库。为此,您首先需要配置 Maven 存储库服务器(我建议使用Apache Archiva),然后将 pom.xml 和 settings.xml 指向服务器: http: //archiva.apache.org/docs/1.4- M3/userguide/deploy.html

部署后,您可以将公司中的所有项目指定为使用该 pom 作为父 pom。您可以使用相同的策略来创建内部项目依赖项。这在持续集成环境中非常有效。