gpt4 book ai didi

java - Maven中parent标签的含义

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:06:23 24 4
gpt4 key购买 nike

我创建了我的项目,其结构与下一段代码相同。

|-- 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>

我的 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>

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>

我的问题是我可以在 AppC1.java 中使用来自 ModP 的配置引用 AppP.java 以及在 ModC1 和 ModC2 中使用 AppC2.java。

我试过了,好像不行。我是否误解了 pom.xml 中父标记的含义?我需要在 maven 中为此类功能做什么?

看了很多文档,现在比没看之前更糊涂了。 :(

我们将不胜感激每一个答案。

谢谢

最佳答案

通常 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>

每个父模块应该包含模块列表:

<modules>
<module>child1</module>
<module>child2</module>
<module>child3</module>
</modules>

据我了解,在您的情况下,您将所有 3 个项目都放在同一目录中,但其中一个是父项目。这是可能的,但我认为您对 parent 的 pom 的引用是错误的。点数为 3,而应为 1:

<relativePath>.../modP/pom.xml</relativePath>

试试这个:

<relativePath>../modP/pom.xml</relativePath>

关于java - Maven中parent标签的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8420763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com