在我的父母:
<project>
...
<dependencies>
<dependency>
<groupId>${parent.groupId}</groupId>
<artifactId>${parent.artifactId}-war</artifactId>
<type>war</type>
</dependency>
</dependencies>
...
</project>
在我的父母:
<project>
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>myproject-war</artifactId>
<version>${project.version}</version>
<type>war</type>
</dependency>
</dependencies>
</dependencyManagement>
...
</project>
只是想知道为什么使用(在父母中)
<artifactId>myproject-war</artifactId>
正在使用
<artifactId>${project.artifactId}-war</artifactId>
无效
[0] 'dependencies.dependency.version' is missing for be.lab:myproject-war:war
答案 0 :(得分:0)
你应该考虑一下你的设置。除了更新到最后一个Maven版本(3.1.1)..
root -- pom.xml
+--- m1 (pom.xml)
+--- m2 (pom.xml)
+--- m3 (pom.xml)
你的root(父)看起来像这样:
<project ....>
<modelVersion>4.0.0</modelVersion>
<groupId>com.soebes.maven.training</groupId>
<artifactId>parent</artifactId>
<packaging>pom</packaging>
<version>1.0.0-SNAPSHOT</version>
<modules>
<module>m1</module>
<module>m2</module>
<module>m3-war</module>
</modules>
...
</project>
典型的孩子看起来像:
我建议只在子节点中定义子节点之间的依赖关系,如下所示:
<project ..>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.soebes.maven.training</groupId>
<artifactId>m1</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>m1</artifactId>
</project>
与其他孩子有依赖关系的孩子看起来像这样:
<project ..>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.soebes.maven.training</groupId>
<artifactId>m1</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>m2</artifactId>
<dependencies>
<dependency>
<groupId>${project.group}</groupId>
<artifactId>m1</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
此外,使用像${parent.*}
这样的东西并不是一种好习惯。
让我们来看看那个战争模块:
<project ..>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.soebes.maven.training</groupId>
<artifactId>m1</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>m3-war</artifactId>
<dependencies>
<dependency>
<groupId>${project.group}</groupId>
<artifactId>m2</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
我建议不要使用像<artifactId>${parent.artifactId}-war</artifactId>
这样的结构。在这种情况下更好地使用只是<artifactId>module-war</artifactId>
因为它不会节省太多。