gpt4 book ai didi

java - 不能使用来自不同 Maven 模块的类

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:13:37 25 4
gpt4 key购买 nike

需要创建一个由注册模块和主项目组成的多模块maven项目。问题是无法使用在不同模块中声明的类。

例如:我在我 parent 的 src/main/java 目录中有一个 ParentClaz,在 child 的 src/main/java 目录中有一个 ChildClaz。现在不可能在 ChildClaz 中同时使用 ParentClaz ,反之亦然。

项目的结构如下所示:

+-- AdminPortal     <- parent root
+-- registration <- child root
-- pom.xml <- child pom
-- pom.xml <- parent pom

我的 AdminPortal POM:

<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>AdminPortal</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>AdminPortal</name>
<url>http://maven.apache.org</url>

<modules>
<module>registration</module>
</modules>

这是子 POM:

<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.example</groupId>
<artifactId>AdminPortal</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>

<groupId>com.example.AdminPortal</groupId>
<artifactId>registration</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>registration</name>
<url>http://maven.apache.org</url>

如何解决这个问题?

最佳答案

您的父 pom 具有包装类型 pom,这不是 jar。这是特殊的聚合器模块。所有 java 代码都应位于 jar 模块中。

包装类型为 pom 的模块无法生成 jar、war 或 ear 等 Artifact 。

Maven by Example - The Simple Parent Project

The parent project doesn’t create a JAR or a WAR like our previous projects; instead, it is simply a POM that refers to other Maven projects.

要在另一个模块中使用一个模块中的类,请使用 maven 依赖项。

典型的项目如下所示:

* administration project (pom)
* registration (jar)
* portal (war)

关于java - 不能使用来自不同 Maven 模块的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21006565/

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