我创建的项目结构与下一段代码相同.
|-- modP
| |-- pom.xml
| |-- src
| | |-- main
| | `-- java
| | `-- com
| | `-- myorg
| | `-- myapp
| | `-- modP
| | `-- AppP.java
|-- modC1
| |-- pom.xml
| |-- src
| | |-- main
| | `-- java
| | `-- com
| | `-- myorg
| | `-- myapp
| | `-- modC
| | `-- AppM.java
|-- modC2
| |-- pom.xml
| |-- src
|-- main
`-- java
`-- com
`-- myorg
`-- myapp
`-- modC2
`-- AppN.java
Run Code Online (Sandbox Code Playgroud)
我的modP的pom.xml是:
<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>com.myorg.myapp</groupId>
<artifactId>modP</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>modP</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)
我的C1的pom.xml是:
<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">
<parent>
<artifactId>modP</artifactId>
<groupId>com.myorg.myapp</groupId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>.../modP/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.myorg.myapp</groupId>
<artifactId>modC1</artifactId>
<packaging>jar</packaging>
<name>modC1</name>
<url>http://maven.apache.org</url>
</project>
Run Code Online (Sandbox Code Playgroud)
而C2的pom.xml是:
<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">
<parent>
<artifactId>modP</artifactId>
<groupId>com.myorg.myapp</groupId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>.../modP/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.myorg.myapp</groupId>
<artifactId>modC2</artifactId>
<packaging>jar</packaging>
<name>modC2</name>
<url>http://maven.apache.org</url>
</project>
Run Code Online (Sandbox Code Playgroud)
我的问题是我可以在AppC1.java中使用ModP中的AppP.java和ModC1和ModC2中的AppC2.java.
我试过这个,看起来这不起作用.我是否误解了pom.xml中父标记的含义?我需要在maven中做这样的功能吗?
我阅读了很多文档,但现在我比阅读之前更加困惑.:(
每个答案都将受到高度赞赏.
谢谢
Ale*_*exR 12
通常,maven项目层次结构存储在分层文件系统中.子项目存储在父项下,即按您的条款存储:
modP
pom.xml
modC1
pom.xml
modC2
pom.xml
Run Code Online (Sandbox Code Playgroud)
子项目可能有自己的孩子等.
除了更高级别的项目之外的每个项目都应包含类似的定义
<parent>
<groupId>com.company</groupId>
<artifactId>parent-artifact-id</artifactId>
<version>1.0</version>
</parent>
Run Code Online (Sandbox Code Playgroud)
每个父模块都应该包含模块列表:
<modules>
<module>child1</module>
<module>child2</module>
<module>child3</module>
</modules>
Run Code Online (Sandbox Code Playgroud)
据我所知,在您的情况下,您将所有3个项目保存在同一目录中,但其中一个是父项.这是有可能的,但我认为你对父母的pom的引用是错误的.点数为3,而应为1:
<relativePath>.../modP/pom.xml</relativePath>
试试这个:
<relativePath>../modP/pom.xml</relativePath>
| 归档时间: |
|
| 查看次数: |
15546 次 |
| 最近记录: |