我是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文件可以继承它?
答案 0 :(得分:10)
如果你将这个父pom放在一个名为android的文件夹中,那么项目将在同一个文件夹中使用它。
项目pom.xml然后可以通过将它放在pom.xml的顶部来使用父pom:
<parent>
<groupId>parent.group</groupId>
<artifactId>parent.artifact</artifactId>
<version>${version.number}</version>
<relativePath>../</relativePath>
</parent>
您可以在以后扩展此架构,如下所示:
这允许您为Android项目定义公共配置,为iphone项目定义公共配置以及为所有移动项目定义公共配置。等等
答案 1 :(得分:4)
您必须将项目部署到内部Maven存储库。为此,首先需要配置Maven存储库服务器(我建议使用Apache Archiva),然后将pom.xml和settings.xml指向服务器:http://archiva.apache.org/docs/1.4-M3/userguide/deploy.html
部署之后,您可以指出贵公司的所有项目都将该pom用作父pom。您可以使用相同的策略来创建内部项目依赖项。这在continuous integration环境中非常顺利。
答案 2 :(得分: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开始计算
答案 3 :(得分:1)
包装类型应为pom
而非apk
。