使用命令行快速创建Maven多模块项目
1.创建父模块
mvn archetype:generate -DgroupId=name.isgodonto -DartifactId=auth-all -Dversion=1.0.0-SNAPSHOT -Dpackage=name.isgodonto -DarchetypeArtifactId=maven-archetype-site-simple -DarchetypeGroupId=org.apache.maven.archetypes -DinteractiveMode=false
2.创建子模块
cd auth-all mvn archetype:generate -DgroupId=name.isgodonto -DartifactId=auth-dal -Dversion=1.0.0-SNAPSHOT -Dpackage=name.isgodonto -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeGroupId=org.apache.maven.archetypes -DinteractiveMode=false mvn archetype:generate -DgroupId=name.isgodonto -DartifactId=auth-biz -Dversion=1.0.0-SNAPSHOT -Dpackage=name.isgodonto -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeGroupId=org.apache.maven.archetypes -DinteractiveMode=false mvn archetype:generate -DgroupId=name.isgodonto -DartifactId=auth-web -Dversion=1.0.0-SNAPSHOT -Dpackage=name.isgodonto -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeGroupId=org.apache.maven.archetypes -DinteractiveMode=false
3.目录结构:
auth-all:父(聚合)模块
auth-dal:数据访问模块
auth-biz:业务模块,依赖于auth-dal
auth-web:web模块,依赖于auth-biz
4.pom文件调整如下:
1)auth-all的pom.xml
<?xml version="1.0" encoding="UTF-8"?> <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>name.isgodonto</groupId> <artifactId>auth-all</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>pom</packaging> <properties> <auth.version>1.0.0-SNAPSHOT</auth.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <jetty.version>8.1.13.v20130916</jetty.version> </properties> <modules> <module>auth-dal</module> <module>auth-biz</module> <module>auth-web</module> </modules> <dependencyManagement> <dependencies> <!-- ================================================= --> <!-- 模块间依赖 --> <!-- ================================================= --> <dependency> <groupId>name.isgodonto</groupId> <artifactId>auth-dal</artifactId> <version>${auth.version}</version> </dependency> <dependency> <groupId>name.isgodonto</groupId> <artifactId>auth-biz</artifactId> <version>${auth.version}</version> </dependency> <dependency> <groupId>name.isgodonto</groupId> <artifactId>auth-web</artifactId> <version>${auth.version}</version> </dependency> </dependencies> </dependencyManagement> <build> <pluginManagement> <plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>${jetty.version}</version> </plugin> </plugins> </pluginManagement> </build> </project>
2)all-dal的pom.xml:
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>name.isgodonto</groupId> <artifactId>auth-all</artifactId> <version>1.0.0-SNAPSHOT</version> </parent> <artifactId>auth-dal</artifactId> <name>auth-dal</name> </project>
3)admin-biz的pom.xml:
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>name.isgodonto</groupId> <artifactId>auth-all</artifactId> <version>1.0.0-SNAPSHOT</version> </parent> <artifactId>auth-biz</artifactId> <name>auth-biz</name> <dependencies> <dependency> <groupId>name.isgodonto</groupId> <artifactId>auth-dal</artifactId> </dependency> </dependencies> </project>
4)auth-web的pom.xml:
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>name.isgodonto</groupId> <artifactId>auth-all</artifactId> <version>1.0.0-SNAPSHOT</version> </parent> <artifactId>auth-web</artifactId> <packaging>war</packaging> <dependencies> <dependency> <groupId>name.isgodonto</groupId> <artifactId>auth-biz</artifactId> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <configuration> <webApp> <contextPath>/</contextPath> </webApp> <scanIntervalSeconds>5</scanIntervalSeconds> <stopKey>myapp</stopKey> <stopKey>9999</stopKey> <connectors> <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> <port>80</port> <maxIdleTime>60000</maxIdleTime> </connector> </connectors> <requestLog implementation="org.eclipse.jetty.server.NCSARequestLog"> <filename>target/access.log</filename> <retainDays>90</retainDays> <append>false</append> <extended>false</extended> <logTimeZone>GMT+8:00</logTimeZone> </requestLog> </configuration> </plugin> </plugins> <finalName>auth-web</finalName> </build> </project>
5.运行项目:
在auth-all下执行以下命令安装包到本地仓库:
mvn clean install -pl auth-web -am
在auth-web下执行以下命令启动jetty容器:
mvn jetty:run
在浏览器输入http://localhost,看到"Hello World!"就成功了!
相关推荐
在本项目中,我们看到"Maven多模块项目"与Jetty服务器结合使用,这通常是为了方便开发阶段的快速部署和测试。 Jetty是一个轻量级的嵌入式Java Web服务器和Servlet容器,它可以快速启动,占用资源少,适合用于开发...
首先,我们从【标题】"SpringBoot使用Maven建立多模块工程"出发,了解其核心概念。Maven是一个项目管理和综合工具,它管理项目的构建、报告和文档,通过POM(Project Object Model)文件定义项目的依赖和构建过程。...
而Maven的Archetype插件则可以帮助开发者快速创建新项目的模板,尤其对于有多个子模块的大型项目,能够大大提升开发效率。本篇文章将详细介绍如何使用Maven Archetype来创建一个多子模块的模板工程。 一、理解Maven...
6. **多模块项目**:Maven支持大型项目拆分为多个子模块进行管理,方便维护和构建。 **三、单元测试** 单元测试是针对软件中的最小可测试单元(如函数、方法)进行验证,确保其按预期工作。在Java中,常用的单元...
2. **创建子模块**:在父项目目录下,为每个业务模块创建单独的目录,然后在这个目录内初始化一个新的Maven项目。每个子模块的pom.xml需要继承自父项目的groupId和version,这样就可以共享父项目的配置。 3. **定义...
本资源"idea创建maven web项目标准结构源码"提供了一个基础的模板,帮助开发者快速搭建一个能够正常启动的Web应用。 首先,让我们详细了解Idea创建Maven Web项目的标准结构。一个典型的Maven Web项目结构如下: 1....
2. **IDE集成**:大多数现代Java IDE(如IntelliJ IDEA,Eclipse)都内置了Maven支持,可以通过向导快速创建Maven项目。 3. **使用Spring Initializr**:对于Spring Boot项目,可以利用Spring Initializr在线生成...
hellofriend项目是一个更加复杂的maven项目,通过创建多个模块和依赖关系,演示了maven的强大功能。 maven的优点 maven的优点包括跨平台、依赖管理、自动化测试和打包、灵活的项目结构等。maven可以帮助开发者快速...
5. **多模块项目**:Maven 支持大型项目中的模块化结构,允许将项目拆分为多个子项目,便于管理和维护。 ** Jersey 知识点 ** Jersey 是一个轻量级的、开源的Java RESTful Web服务框架,基于JSR 311/339(JAX-RS)...
- 大型项目往往由多个子模块组成,Maven可以通过设置模块(modules)来管理这些子项目。 ### Maven的 profiles - profiles允许根据不同的环境(如开发、测试、生产)定义不同的配置。 - 可以通过命令行参数`-P`...
例如,我们可以使用`seam-gen`插件来快速创建Seam组件和JPA实体: ```xml <groupId>org.jboss.seam <artifactId>jboss-seam-maven-plugin <version>3.x.y <!-- 这里添加你的执行配置 --> ``` 在...
在创建Maven项目时,可以使用Maven自带的Archetype来快速创建具有标准文件夹结构的项目。Archetype相当于项目模板,根据不同的项目类型选择合适的Archetype可以快速生成项目结构,例如maven-archetype-quickstart...
Maven Archetypes是预定义的项目模板,开发者可以通过它们快速创建新项目,减少了初始配置的工作量。 10. **最佳实践与问题解决** Maven的使用过程中,可能会遇到如依赖冲突、构建失败等问题。理解Maven的命令行...
5. ** archetype **:Maven 提供了 archetype 功能,可以用于快速创建新项目的模板,自动生成基础的目录结构和POM.xml文件,大大简化了新项目初始化的过程。 6. **仓库管理**:Maven 默认使用 Maven Central ...
Maven插件可以帮助创建新的项目结构,例如`mvn archetype:generate`可以基于预设模板快速初始化新项目。此外,还有各种插件用于测试、打包、部署等,充分利用这些插件能提高开发效率。 总的来说,掌握Maven的最佳...
2. **创建项目**:使用Maven的命令行工具`mvn archetype:create`可以快速创建一个新的Maven项目。创建的项目结构通常包含`pom.xml`文件。 3. **编辑POM**:在`pom.xml`中添加项目信息,如项目名称、版本、描述,...
10. **Maven Archetypes**:Maven还提供了一系列的archetypes,即模板项目,开发者可以根据需要选择一个archetype快速创建一个新的Maven项目。 通过了解和掌握这些知识点,开发人员能够高效地使用Apache Maven ...