Maven来自模块的自定义父属性
我无法从Maven模块访问父模块的Maven来自模块的自定义父属性,maven,maven-3,maven-module,Maven,Maven 3,Maven Module,我无法从Maven模块访问父模块的properties部分中定义的属性。 事实上,当我在下面启动构建时,warName是默认的 这是父Pom .... <modelVersion>4.0.0</modelVersion> <groupId>com.speed.pms</groupId> <artifactId>PMS-Main</artifactId> <version>1.0.0
properties
部分中定义的属性。
事实上,当我在下面启动构建时,warName是默认的
这是父Pom
....
<modelVersion>4.0.0</modelVersion>
<groupId>com.speed.pms</groupId>
<artifactId>PMS-Main</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<name>PMS Main Build Project</name>
<properties>
<context-root>PMS-CUSTOM</context-root>
</properties>
<modules>
<module>../PMS-WEB</module>
</modules>
....
。。。。
4.0.0
com.speed.pms
主管道
1.0.0
聚甲醛
PMS主要建设项目
定制
../PMS-WEB
....
这是模块
...
<parent>
<groupId>com.speed.pms</groupId>
<artifactId>PMS-Main</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>PMS-WEB</artifactId>
<packaging>war</packaging>
<name>PMS-WEB Webapp</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<web.resource.dir>src/main/webapp</web.resource.dir>
</properties>
<build>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<!-- Context root from parent project -->
<warName>${context-root}</warName>
<webResources>
<resource>
<directory>${web.resource.dir}</directory>
</resource>
</webResources>
</configuration>
</plugin>
....
。。。
com.speed.pms
主管道
1.0.0
PMS-WEB
战争
PMS-WEB应用程序
UTF-8
src/main/webapp
org.apache.maven.plugins
maven战争插件
2.4
${context root}
${web.resource.dir}
....
而我可以使用${project.parent.arctifactId}属性。
我还尝试了${project.parent.properties.context root},但没有成功。这应该很简单,但我不明白哪一个是我的错误?不应该是从模块中的父级继承的属性吗?Maven用户列表中的人员帮助我找到解决方案。我张贴了回复 而您的../PMS-WEB部分在父pom中 引用同一目录中的子目录,您的 /未定义,因此应为父级 向上一层,而不是同一层 我在中更改子模块父部分
<parent>
<groupId>com.speed.pms</groupId>
<artifactId>PMS-Main</artifactId>
<version>1.0.0</version>
<relativePath>../PMS-Main/</relativePath>
</parent>
com.speed.pms
主管道
1.0.0
../PMS主管道/
而且每一件事都是有效的
多亏了米洛斯
大卫还有另一种解决方案。Maven 3在第一步中查找一级目录中的父级
pom.xml
。如果他们在那里找不到此文件,则尝试从存储库中提取pom.xml
所以,解决方案是在子项目中运行maven之前安装父项目