这是一个基本问题,我只是不太熟悉 Maven 多模块结构。说,我有一个网络应用程序。我想将一些模块连接到它(一些服务)。我是否需要制作一个 Web 应用程序只是其中一个模块,依赖于其他一些模块,然后运行它?起初我以为我可以运行整个项目,但这个选项在我的 IDE 中是不活动的(我现在使用的是 NetBeans),这让我觉得我应该运行一个主模块(在这种情况下是一个 Web 应用程序) )。是这样吗?提前致谢。
问问题
4924 次
1 回答
6
如果您有一个多模块项目,则需要如下结构,该结构也将由文件夹结构表示。
+-- root (pom.xml)
+--- module-1
+--- module-2
+--- module-war
而根模块包含这样的东西:
<project ..>
<groupId>com.test.project</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<module>module-1</module>
<module>module-2</module>
<module>module-war</module>
</modules>
</project>
在 module-1 中,您的 pom 应如下所示:
<project ..>
<parent>
<groupId>com.test.project</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>module-1</artifactId>
dependencies for the module
</project>
在模块 2 中,它看起来或多或少是一样的。在战争模块中,它看起来像:
<project ..>
<parent>
<groupId>com.test.project</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<packaging>war</packaging>
<artifactId>module-war</artifactId>
dependencies for the module
</project>
如果模块之间存在依赖关系,例如 module-1 依赖于 module-2,它在 module-1 中如下所示:
<project ..>
<parent>
<groupId>com.test.project</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>module-1</artifactId>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>module-2</artifactId>
<version>{project.version}</version>
</dependency>
..other dependencies..
</dependencies>
</project>
要构建和打包您的项目,您将转到父文件夹并简单地执行
mvn clean package
于 2012-04-29T11:26:35.467 回答