6

私は 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>

このPOMファイルをどこに配置して、他のPOMファイルが継承できるようにしますか?

4

4 に答える 4

10

この親 pom を android というフォルダーに入れ、それを使用するプロジェクトはこのように同じフォルダーに入れます。

  • アンドロイド
  • pom.xml
  • アンドロイド プロジェクト 1
    • pom.xml

プロジェクト pom.xml は、これを pom.xml の先頭に配置することで、親 pom を使用できます。

<parent>
    <groupId>parent.group</groupId>
    <artifactId>parent.artifact</artifactId>
    <version>${version.number}</version>
    <relativePath>../</relativePath>
</parent>

その後、このアーキテクチャを将来的に次のように拡張できます。

  • モバイル
    • pom.xml
    • アンドロイド
      • pom.xml
      • アンドロイド プロジェクト 1
      • アンドロイド プロジェクト 2
    • iPhone
      • pom.xml
      • iphone-プロジェクト-1

これにより、android プロジェクトの共通構成、iphone プロジェクトの共通構成、およびすべてのモバイル プロジェクトの共通構成を定義できます。等々

于 2013-01-18T14:14:04.617 に答える
4

プロジェクトを内部Mavenリポジトリにデプロイする必要があります。これを行うには、最初にMavenリポジトリサーバーを構成する必要があり(Apache Archivaを使用することをお勧めします)、次にpom.xmlとsettings.xmlをサーバーにポイントします:http://archiva.apache.org/docs/1.4- M3 / userguide / deploy.html

デプロイした後、そのpomを親pomとして使用するように会社のすべてのプロジェクトを指定できます。同じ戦略を使用して、内部プロジェクトの依存関係を作成できます。これは、継続的インテグレーション環境で非常にうまくいきます。

于 2013-01-18T14:16:05.453 に答える
1

すべての子 pom に対して、親 pom への参照を配置します。

<parent>
    <groupId>com.mycomp</groupId>
    <artifactId>parent-pom-android</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <relativePath>relative/path/to/parent/pom</relativePath>
</parent>

relativePath は子 pom から計算されます

于 2013-01-18T14:15:29.230 に答える
1

包装タイプはpomではなく にする必要がありapkます。

于 2013-07-07T20:22:01.853 に答える