我是Maven的新手.我从SVN检查了一个具有以下结构的客户的项目:
projectName
|--> pom.xml
|--> jetty-wrapper
|--> pom.xml
|--> bin
|--> pom.xml
|--> projectName-common
|--> pom.xml
|--> bin
|--> pom.xml
|--> projectName-war
|--> bin
|--> pom.xml
Run Code Online (Sandbox Code Playgroud)
"projectName"(顶部的pom)正下方的pom.xml正在构建三个模块
<modules>
<module>projectName-common</module>
<module>projectName-war</module>
<module>jetty-wrapper</module>
</modules>
Run Code Online (Sandbox Code Playgroud)
但是mvn clean install从文件夹执行projectName时会出现以下错误
Child module [...]projectName\projectName-war\pom.xml of [...]projectName\pom.xml does not exist
Run Code Online (Sandbox Code Playgroud)
问题是:下面是否应该有一个pom.xml projectName-war,就像我的客户可能忘记提交给SVN的其他模块一样?
小智 29
Child module [...]projectName\projectName-war\pom.xml of [...]projectName\pom.xml does not exist
Run Code Online (Sandbox Code Playgroud)
如果从命令行使用mvn install时遇到上述错误(同样的pom可能在eclipse中工作)你必须改变你的pom.xml
而不是以下:
<modules>
<module>../my-util</module>
<module>../my-server</module>
</modules>
Run Code Online (Sandbox Code Playgroud)
按照下面的内容(附在剖析器中):
<profiles>
<profile>
<modules>
<module>../my-util</module>
<module>../my-server</module>
</modules>
</profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)
问题是:在projectName-war下面是否应该有一个pom.xml
简单地说是的.
你已经弄明白了,因为你没有向maven 提供一个项目描述符aka pom.xml,它将无法调用projectName-war一个有效的子模块.
projectName-war下必须有一个pom.xml文件,并且它必须有一个工件ID,该工件ID与声明模块的父项下的工件ID相匹配,即
<artifactId>projectName-war</artifactId>
Run Code Online (Sandbox Code Playgroud)
小智 5
当您复制并粘贴子项目时通常会出现此问题。例如,我们有如下单独的子项目
<artifactId>business-layer</artifactId> with project name as business-layer
<artifactId>service-layer</artifactId> with project name as **xyz**-layer
<modules>
<module>business-layer</module>
<module>**service-layer**</module>
</modules>
Run Code Online (Sandbox Code Playgroud)
初始构建期间的项目名称应与模块名称相同。这不需要添加标签,因为配置文件标签的目的是触发具有特定操作的构建
| 归档时间: |
|
| 查看次数: |
34673 次 |
| 最近记录: |