刚刚把一个开源的项目变成maven项目来进行管理,因为是多级的目录(之前配置的都是单级的目录),因此记录一下pom文件是怎么配置的。maven
1、目录结构spa
以下,maven的结构图,红字是表示完整的项目code
2、创建pom文件blog
那么,首先在每一个目录先创建一个pom文件,以便maven能搜索到每一个项目。ip
(一)Trunk下的pom文件是主pom文件,里面定义好全局的变量
部分代码:get
<modelVersion>4.0.0</modelVersion> <groupId>com.cpacm.demo</groupId> <artifactId>cpacm-talkback</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <description> talkback </description> <!-- 子模块声明 --> <modules> <!-- ###lib### --> <module>libraries</module> <!-- ###apk### --> <module>accessibilityServices</module> </modules> <!-- 全局属性约定 --> <properties> </properties>
包含两个子目录中的项目libraries和accessibilityServicesit
(二)accessibilityServices下的pom文件io
<parent> <artifactId>cpacm-talkback</artifactId> <groupId>com.cpacm.demo</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>accessibilityServices</artifactId> <packaging>pom</packaging> <name>accessibilityServices</name> <description>。。。。</description> <!-- 子模块声明 --> <modules> <!-- ###lib### --> <module>talkback</module> </modules>
Parent节点中的信息要与父pom中(即trunk下的pom文件)的信息一一对应,由于maven会根据groupId:artifactId:version来进行搜索 有一项不对就会匹配不上。(这里的version没 写,默认跟父pom同样),声明是pom类型,由于这不是个实际的项目class
子模块是talkback变量
<parent> <artifactId>accessibilityServices</artifactId> <groupId>com.cpacm.demo</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>talkback</artifactId> <packaging>apk</packaging> <name>talkback</name> <description>talkback</description>
这里就很明白了,一个apk类型的项目(Android)
(三)Libraries下的pom文件
<parent> <artifactId>cpacm-talkback</artifactId> <groupId>com.cpacm.demo</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>libraries</artifactId> <packaging>pom</packaging> <name>libraries</name> <description>。。。。</description> <!-- 子模块声明 --> <modules> <!-- ###lib### --> <module>commandslib</module> <module>actionslib</module> <module>compatutils</module> <module>utils</module> <module>widgets</module> </modules>
跟上面的pom文件同样的结构
每一个库下的pom文件就省略不写了,跟talkback下的pom文件同样,只不过类型变成
<packaging>apklib</packaging>
总结
Pom文件没法找到上一级的文件多半是你的id和ver写错了,再认真检查一遍可能就会发现本身犯的错误。