Java Maven中父标记的含义
我用和下一段代码相同的结构创建了我的项目Java Maven中父标记的含义,java,maven,Java,Maven,我用和下一段代码相同的结构创建了我的项目 |-- modP | |-- pom.xml | |-- src | | |-- main | | `-- java | | `-- com | | `-- myorg | | `-- myapp | | `-- modP | |
|-- 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
我的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>
4.0.0
com.myorg.myapp
modP
0.0.1-快照
聚甲醛
modP
http://maven.apache.org
UTF-8
朱尼特
朱尼特
3.8.1
测试
我的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>
modP
com.myorg.myapp
0.0.1-快照
…/modP/pom.xml
4.0.0
com.myorg.myapp
modC1
罐子
modC1
http://maven.apache.org
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>
modP
com.myorg.myapp
0.0.1-快照
…/modP/pom.xml
4.0.0
com.myorg.myapp
modC2
罐子
modC2
http://maven.apache.org
我的问题是,我是否可以在AppC1.java中使用ModP中的AppP.java,以及在ModC1和ModC2中使用AppC2.java
我试过这个,但似乎不起作用。我是否误解了pom.xml中父标记的含义?对于这样的函数,我需要在maven中做什么
我读了很多文档,但现在我比以前更困惑了(
每一个答案都将受到高度赞赏
谢谢因为ModP是一个pom(打包)项目,它不应该包含任何Java代码。通常,maven项目层次结构存储在层次结构文件系统中。子项目存储在父项目下,也就是说,在您的术语中:
modP
pom.xml
modC1
pom.xml
modC2
pom.xml
子项目可能有自己的子女等
除较高级别的项目外,每个项目都应包含以下定义
<parent>
<groupId>com.company</groupId>
<artifactId>parent-artifact-id</artifactId>
<version>1.0</version>
</parent>
com公司
父工件id
1
每个父模块应包含模块列表:
<modules>
<module>child1</module>
<module>child2</module>
<module>child3</module>
</modules>
孩子1
孩子2
孩子3
据我所知,在您的案例中,您将所有3个项目都保存在同一目录中,但其中一个是家长。这是可能的,但我认为您对家长pom的引用是错误的。点数为3,而点数应为1:
../modP/pom.xml
试试这个:
。/modP/pom.xml
您理解正确。所有3个项目都在同一个目录中,点的数量根据maven文档是正确的。我认为Puce在这种情况下是正确的。父pom.xml(项目)不应包含任何代码。