`

使用命令行快速创建Maven多模块项目

阅读更多

使用命令行快速创建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!"就成功了!

 

 

  • 大小: 8.4 KB
1
2
分享到:
评论
2 楼 Tiro_Li 2015-11-24  

-DarchetypeVersion=1.1改成-DarchetypeVersion=1.0,或删除版本会自动获取最新发布版
1 楼 nicegege 2015-11-24  
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 -DarchetypeVersion=1.1 -DinteractiveMode=false   执行生成web项目时,报错了。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2
.3:generate (default-cli) on project auth-all: The desired archetype does not ex
ist (org.apache.maven.archetypes:maven-archetype-webapp:1.1) -> [Help 1]

怎么解决的?

相关推荐

    maven多模块项目

    在本项目中,我们看到"Maven多模块项目"与Jetty服务器结合使用,这通常是为了方便开发阶段的快速部署和测试。 Jetty是一个轻量级的嵌入式Java Web服务器和Servlet容器,它可以快速启动,占用资源少,适合用于开发...

    SpringBoot使用Maven建立多模块工程

    首先,我们从【标题】"SpringBoot使用Maven建立多模块工程"出发,了解其核心概念。Maven是一个项目管理和综合工具,它管理项目的构建、报告和文档,通过POM(Project Object Model)文件定义项目的依赖和构建过程。...

    【maven】多子模块maven模板工程archetype创建过程

    而Maven的Archetype插件则可以帮助开发者快速创建新项目的模板,尤其对于有多个子模块的大型项目,能够大大提升开发效率。本篇文章将详细介绍如何使用Maven Archetype来创建一个多子模块的模板工程。 一、理解Maven...

    mavenWeb空项目

    6. **多模块项目**:Maven支持大型项目拆分为多个子模块进行管理,方便维护和构建。 **三、单元测试** 单元测试是针对软件中的最小可测试单元(如函数、方法)进行验证,确保其按预期工作。在Java中,常用的单元...

    SpringBoot基于Maven多模块开发

    2. **创建子模块**:在父项目目录下,为每个业务模块创建单独的目录,然后在这个目录内初始化一个新的Maven项目。每个子模块的pom.xml需要继承自父项目的groupId和version,这样就可以共享父项目的配置。 3. **定义...

    idea创建maven web项目标准结构源码

    本资源"idea创建maven web项目标准结构源码"提供了一个基础的模板,帮助开发者快速搭建一个能够正常启动的Web应用。 首先,让我们详细了解Idea创建Maven Web项目的标准结构。一个典型的Maven Web项目结构如下: 1....

    新建maven项目基础

    2. **IDE集成**:大多数现代Java IDE(如IntelliJ IDEA,Eclipse)都内置了Maven支持,可以通过向导快速创建Maven项目。 3. **使用Spring Initializr**:对于Spring Boot项目,可以利用Spring Initializr在线生成...

    maven详细使用教程

    hellofriend项目是一个更加复杂的maven项目,通过创建多个模块和依赖关系,演示了maven的强大功能。 maven的优点 maven的优点包括跨平台、依赖管理、自动化测试和打包、灵活的项目结构等。maven可以帮助开发者快速...

    maven+jersey项目源码

    5. **多模块项目**:Maven 支持大型项目中的模块化结构,允许将项目拆分为多个子项目,便于管理和维护。 ** Jersey 知识点 ** Jersey 是一个轻量级的、开源的Java RESTful Web服务框架,基于JSR 311/339(JAX-RS)...

    maven项目构建入门书籍

    - 大型项目往往由多个子模块组成,Maven可以通过设置模块(modules)来管理这些子项目。 ### Maven的 profiles - profiles允许根据不同的环境(如开发、测试、生产)定义不同的配置。 - 可以通过命令行参数`-P`...

    使用 Maven 管理 Seam 项目

    例如,我们可以使用`seam-gen`插件来快速创建Seam组件和JPA实体: ```xml &lt;groupId&gt;org.jboss.seam &lt;artifactId&gt;jboss-seam-maven-plugin &lt;version&gt;3.x.y &lt;!-- 这里添加你的执行配置 --&gt; ``` 在...

    Maven资料.pdf

    在创建Maven项目时,可以使用Maven自带的Archetype来快速创建具有标准文件夹结构的项目。Archetype相当于项目模板,根据不同的项目类型选择合适的Archetype可以快速生成项目结构,例如maven-archetype-quickstart...

    maven项目学习笔记记录

    Maven Archetypes是预定义的项目模板,开发者可以通过它们快速创建新项目,减少了初始配置的工作量。 10. **最佳实践与问题解决** Maven的使用过程中,可能会遇到如依赖冲突、构建失败等问题。理解Maven的命令行...

    apache-maven-3.8.6-bin.zip

    5. ** archetype **:Maven 提供了 archetype 功能,可以用于快速创建新项目的模板,自动生成基础的目录结构和POM.xml文件,大大简化了新项目初始化的过程。 6. **仓库管理**:Maven 默认使用 Maven Central ...

    MAVEN使用最佳实践

    Maven插件可以帮助创建新的项目结构,例如`mvn archetype:generate`可以基于预设模板快速初始化新项目。此外,还有各种插件用于测试、打包、部署等,充分利用这些插件能提高开发效率。 总的来说,掌握Maven的最佳...

    Maven的使用示例

    2. **创建项目**:使用Maven的命令行工具`mvn archetype:create`可以快速创建一个新的Maven项目。创建的项目结构通常包含`pom.xml`文件。 3. **编辑POM**:在`pom.xml`中添加项目信息,如项目名称、版本、描述,...

    apache-maven-3.5.0

    10. **Maven Archetypes**:Maven还提供了一系列的archetypes,即模板项目,开发者可以根据需要选择一个archetype快速创建一个新的Maven项目。 通过了解和掌握这些知识点,开发人员能够高效地使用Apache Maven ...

Global site tag (gtag.js) - Google Analytics