Maven 2 马文超级POM
我是Maven的新手,正在为我的公司创建一个构建。我们不想连接到Maven中央存储库,我们的src和测试代码的目录结构与super pom中指定的不同。我想处理这个问题的最好方法是创建一个客户超级pom,但我想知道——我应该把超级pom放在哪里,这样我的项目pom就可以引用它了?它是否放在存储库的某个地方?如果是,在哪里 谢谢,Maven 2 马文超级POM,maven-2,pom.xml,Maven 2,Pom.xml,我是Maven的新手,正在为我的公司创建一个构建。我们不想连接到Maven中央存储库,我们的src和测试代码的目录结构与super pom中指定的不同。我想处理这个问题的最好方法是创建一个客户超级pom,但我想知道——我应该把超级pom放在哪里,这样我的项目pom就可以引用它了?它是否放在存储库的某个地方?如果是,在哪里 谢谢, Jeff我的建议是创建一个父POM,项目可以从中派生设置。这个父POM只是另一个Maven 2项目,但类型是“POM”而不是“jar” 例如,您可以有这样的父pom:
Jeff我的建议是创建一个父POM,项目可以从中派生设置。这个父POM只是另一个Maven 2项目,但类型是“POM”而不是“jar” 例如,您可以有这样的父pom:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.company.projectname</groupId>
<artifactId>projectname</artifactId>
<packaging>pom</packaging>
<version>1.0</version>
<name>projectname</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.5</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<superprop1>this property is available in all child projects</superprop1>
<superprop2>this property is available in all child projects</superprop2>
<superprop3>this property is available in all child projects</superprop3>
</properties>
</project>
<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">
<parent>
<artifactId>projectname</artifactId>
<groupId>com.company.projectname</groupId>
<version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>child-project</artifactId>
<packaging>jar</packaging>
<name>child-project</name>
<description>
My child project
</description>
</project>
4.0.0
com.company.projectname
项目名称
聚甲醛
1
项目名称
朱尼特
朱尼特
4.5
测试
此属性在所有子项目中都可用
此属性在所有子项目中都可用
此属性在所有子项目中都可用
该项目的子项目可能是这样的:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.company.projectname</groupId>
<artifactId>projectname</artifactId>
<packaging>pom</packaging>
<version>1.0</version>
<name>projectname</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.5</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<superprop1>this property is available in all child projects</superprop1>
<superprop2>this property is available in all child projects</superprop2>
<superprop3>this property is available in all child projects</superprop3>
</properties>
</project>
<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">
<parent>
<artifactId>projectname</artifactId>
<groupId>com.company.projectname</groupId>
<version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>child-project</artifactId>
<packaging>jar</packaging>
<name>child-project</name>
<description>
My child project
</description>
</project>
项目名称
com.company.projectname
1
4.0.0
子项目
罐子
子项目
我的孩子计划
您在父POM中声明的所有内容现在都在子POM中可用。在关于的示例中,子项目将自动提供JUnit依赖项。这样做还将确保与每个开发人员都必须在Maven安装的super POM上乱搞相比,环境会自动配置。您可能是对的,在这种情况下,super POM是一种可行的方法。至于放在哪里,您将需要创建一个本地maven存储库,并允许开发人员访问它。以下是一些有用(和免费)的程序:
- 人工制品()
- 关系()
- 阿奇瓦(http://archiva.apache.org/)