我希望有一个“依赖项文件”,以便能够将此文件加载到不同的maven poms中。我的项目中有两个pom,它们在某种程度上相似。我希望第三个pom中的相同配置由工作的poms加载。 这可能吗?
e.g。类似的东西:
<project A>
<dependencies>
<file> "depend.xml" </file>
</dependencies>
...
<project B>
<dependencies>
<file> "depend.xml" </file>
</dependencies>
...
答案 0 :(得分:2)
您可以创建父POM文件,您的所有项目都会继承该文件。通过在父POM文件中指定依赖项,版本等,您无需在每个项目中重新指定它们(除非您因任何原因需要覆盖它们)。
有更多信息,请访问:https://www.smartics.eu/confluence/display/BLOG/2013/07/22/Using+Aggregate+and+Parent+POMs
答案 1 :(得分:1)
您可以创建一个分层项目,使A和B成为公共父项的模块,并在那里管理您的依赖项。
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.package</groupId>
<artifactId>parent</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>Parent</name>
<modules>
<module>A</module>
<module>B</module>
</modules>
...
<dependencies>
....
</dependencies>
</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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>A</artifactId>
<packaging>jar</packaging>
<name>A</name>
<parent>
<groupId>my.package</groupId>
<artifactId>parent/artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
您还可以使用此模式引入变量来组织您的版本。
...
<properties>
<alib.version>4.7</alib.version>
<properties>
...
<dependencies>
<dependency>
<groupId>alib</groupId>
<artifactId>someArtifact</artifactId>
<version>${alib.version}</version>
</dependency>
</dependencies>
答案 2 :(得分:-1)
我不习惯“构建生命周期”的概念。我认为我必须为不同的任务拥有不同的poms。例如一个用于包装,一个用于部署。在我发现我可以将插件执行分配给特定阶段之后,我只能用一个pom来完成这个问题,从而消除了我的整个问题。