不能使用来自不同Maven模块的类
需要创建一个由注册模块和主项目组成的多模块maven项目。 问题是不可能使用在不同模块中声明的类。
例如:我在父母的src / main / java目录中有一个ParentClaz
在ParentClaz
的src / main / java目录中有一个ChildClaz
。 现在,不可能在ChildClaz
既不使用ParentClaz
也不反之亦然。
该项目的结构如下所示:
+-- AdminPortal <- parent root +-- registration <- child root -- pom.xml <- child pom -- pom.xml <- parent pom
我的AdminPortal POM:
4.0.0 com.example AdminPortal pom 1.0-SNAPSHOT AdminPortal http://maven.apache.org registration
这是孩子POM:
4.0.0 com.example AdminPortal 1.0-SNAPSHOT com.example.AdminPortal registration 1.0-SNAPSHOT war registration http://maven.apache.org
怎样才能解决这个问题?
您的父pom有包装类型pom
,这不是jar
。 这是特殊的聚合器模块。 所有java代码都应该位于jar
模块中。
包装类型的模块不能生成jar子,战争或耳朵等工件。
Maven by Example – 简单父项目
父项目不像以前的项目那样创建JAR或WAR; 相反,它只是一个引用其他Maven项目的POM。
要在其他模块中使用来自一个模块的类,请使用maven依赖项。
典型项目如下所示:
* administration project (pom) * registration (jar) * portal (war)
子可以使用父依赖项,尝试将其添加到父级
log4j log4j 1.2.14
在小孩子里做这个class
import org.apache.log4j.Logger; public class Test { public static void main(String[] args) { Logger.getLogger(Test.class); } }
你会看到它编译。