`

maven构造多模块项目

阅读更多
手动构建多模块maven项目,这个simple-parent项目下有两个子模块,一个是jar包型的simple-weather和一个war型的simple-webapp
1.创建一个父的simple-parent项目
D:\>mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch06 -DartifactId=simp
le-parent -DpackageName=org.sonatype.mavenbook -DarchetypeArtifactId=maven-arche
type-webapp

2.修改里面的pom文件如下
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.sonatype.mavenbook.ch06</groupId>
<artifactId>simple-parent</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>simple-parent Maven Webapp</name>
<url>http://maven.apache.org</url>
<modules>
<module>simple-weather</module>
<module>simple-webapp</module>
</modules>
<build>
    <pluginManagement>
    <plugins>
       <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
         <source>1.5</source>
         <target>1.5</target>
        </configuration>
       </plugin>
    </plugins>
    </pluginManagement>
</build>

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
</dependencies>
</project>
3.在simple-parent下创建maven子项目是会出错.如下
D:\simple-parent>mvn archetype:create -DgroupId=org.sonatype.mavenbook.weather -
DartifactId=simple-weather

org.apache.maven.reactor.MavenExecutionException: Could not find the model file
'D:\simple-parent\simple-weather\pom.xml'. for project unknown
        at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:376)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:289)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)

将这个pom移到别的地方就能正常运行

4.修改simple-weather中的pom文件
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>org.sonatype.mavenbook.ch06</groupId>
    <artifactId>simple-parent</artifactId>
    <version>1.0</version>
</parent>
<artifactId>simple-weather</artifactId>
<packaging>jar</packaging>

<name>Chapter 6 Simple Weather API</name>

<build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <configuration>
            <testFailureIgnore>true</testFailureIgnore>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
</build>

<dependencies>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.14</version>
    </dependency>
    <dependency>
      <groupId>dom4j</groupId>
      <artifactId>dom4j</artifactId>
      <version>1.6.1</version>
    </dependency>
    <dependency>
      <groupId>jaxen</groupId>
      <artifactId>jaxen</artifactId>
      <version>1.1.1</version>
    </dependency>
    <dependency>
      <groupId>velocity</groupId>
      <artifactId>velocity</artifactId>
      <version>1.5</version>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-io</artifactId>
      <version>1.3.2</version>
      <scope>test</scope>
    </dependency>
</dependencies>
</project>

其它包中的内容直接copy过来

5.创建simple-webapp
D:\simple-parent>mvn archetype:create -DgroupId=org.sonatype.mavenbook.web -Dart
ifactId=simple-webapp -DpackageName=org.sonatype.mavenbook -DarchetypeArtifactId
=maven-archetype-webapp

6.修改simple-webapp中的pom文件
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>org.sonatype.mavenbook.ch06</groupId>
    <artifactId>simple-parent</artifactId>
    <version>1.0</version>
</parent>

<artifactId>simple-webapp</artifactId>
<packaging>war</packaging>
<name>simple-webapp Maven Webapp</name>
<dependencies>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-servlet_2.4_spec</artifactId>
      <version>1.1.1</version>
    </dependency>
    <dependency>
      <groupId>org.sonatype.mavenbook.ch06</groupId>
      <artifactId>simple-weather</artifactId>
      <version>1.0</version>
    </dependency>
</dependencies>
<build>
    <finalName>simple-webapp</finalName>
    <plugins>
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
      </plugin>
    </plugins>
</build>
</project>
7.从sample中copy包源码与web.xml

8.进入simple-parent中构建多模块项目mvn clean install

9.运行mvn jetty:run

10.可以构建为eclipse项目mvn eclipse:eclipse

11.访问http://localhost:8080/simple-webapp/weather?zip=110

相关资料:
参与书籍:maven权威指南
链接:http://www.sonatype.com/books/maven-book/reference_zh/public-book.html
书中源码下载地址:http://www.sonatype.com/book/mvn-examples-1.0.zip
分享到:
评论

相关推荐

    maven构建多模块项目源码实例

    使用maven构建多模块项目。在一个项目中使用多个模块的一个...但是,当模块是一个项目的一部分,并密切相关的时候,该项目应被构造为一个多模块项目。在一个多模块项目中,Maven可以确保所有子模块在主模块之前被构建。

    maven构造spring+springmvc+mybatisplus的web项目

    【标题】"maven构造spring+springmvc+mybatisplus的web项目"涉及的主要知识点是构建一个基于Maven的Web应用程序,其中整合了Spring、SpringMVC和MybatisPlus框架。下面将详细介绍这三个核心组件以及它们如何协同工作...

    Maven构造Alice支持中文及自定义标签

    而`org`目录很可能是项目源代码的一部分,按照Java的包命名规范,它可能包含了项目的各种类和接口,比如Alice机器人的核心逻辑、分词处理模块以及自定义标签的相关实现。 总结来说,这个项目展示了如何通过Maven...

    免费maven项目用到的json的jar包

    Jackson库包括多个模块,如`jackson-databind`、`jackson-core`和`jackson-annotations`。在`jackson-databind`模块中,主要包含了`ObjectMapper`类,它是Jackson库的核心,可以将Java对象转换为JSON字符串,反之也...

    Maven+ssm(spring+springmvc+mybatis)+mysql

    总结,"Maven+SSM+MySQL"的学习涵盖了Java Web开发的多个层面,从基础的控制反转和面向切面编程,到Web请求的处理,再到数据库的操作。对于初学者,这是一个全面而实用的入门教程,能够帮助他们快速建立起企业级应用...

    Maven常用命令大全与pom文件讲解

    摘要:本文主要讲解是Maven使用过程中一些常用的命令,并配上图片说明,最后还讲...清理项目生产的临时文件,一般是模块下的target目录下面来看看目录:2、mvnpackage说明:项目打包工具,会在模块下的target目录生成jar或

    Maven_pom.xml常用配置解析

    15. `modules` 元素:作为本项目一部分的模块(子项目)。 16. `repositories` 元素:依赖项和扩展项的远程仓库信息。 17. `pluginRepositories` 元素:构建所需插件的远程仓库信息。 18. `dependencies` 元素:...

    c8tech-releng-maven:C8Tech releng maven工件

    该存储库包含一组旨在帮助开发和构建多模块项目的Maven POM。 这些模块可以具有不同的类型,包括POM聚合器,POM父级,Java库,OSGi软件包(Pom-First和Manifest-First),OSGi集成测试和其他。 最重要的工件是...

    Maven+spring+ibatis+struts2.0+MQ+Memcached 项目构建

    【标题】"Maven+Spring+Ibatis+Struts2.0+MQ+Memcached 项目构建"涉及了多个核心的Java开发技术和框架,这些技术的集成应用在现代企业级应用开发中非常常见。让我们逐一深入理解这些技术及其在项目中的作用。 1. ...

    用Java开发学生信息系统:Maven工程构建与标准库应用

    使用场景包括掌握Maven项目初始化与模块设计方法论的应用,及加深对基于文本数据操作和面向对象设计理念的把握。 补充提示:跟随本项目实战能够助力初学者理解Java语言在实际工程任务中怎样有效运用相关技术和理论,...

    【java框架】Spring(3) -- Spring配置补充(基于Maven项目)(csdn)————程序.pdf

    本文将详细讲解基于 Maven 项目的 Spring 配置补充,重点关注 Bean 的实例化、引入其他配置文件以及注解配置的细节。 1. **Bean 实例化** - **无参构造方法实例化**:这是最基础的 Bean 实例化方式,Spring 通过...

    springboot整合rabbitMq和多数据源动态切换和跨域访问和gradle加maven和shiro安全框架和lombok自动getset生成

    标题中的“springboot整合rabbitMq和多数据源动态切换和跨域访问和gradle加maven和shiro安全框架和lombok自动getset生成”表明这是一个关于Spring Boot集成多个技术的项目。以下是对这些技术及其整合的详细解释: 1...

    软件构造系统

    在软件工程领域,软件构造系统是核心概念之一,它涉及到代码编写、编译、测试、集成以及版本控制等多个环节。 软件构造系统通常包括以下几个关键组成部分: 1. **源代码管理**:如Git等工具,用于跟踪代码的历史...

    在eclipse中建立SSM框架的web app的maven项目中使用mybatis plus访问数据库

    MyBatis Plus则在MyBatis的基础上做了增强,提供了许多便捷功能,如自动化CRUD操作、条件构造器、多表关联查询等。 接下来,我们逐步讲解如何在Eclipse中创建SSM项目并集成MyBatis Plus: 1. **创建Maven项目**:...

    基于Maven+JUnit+Lombok+MyBatis+MySQL的简易图书管理系统源码.zip

    Maven是Apache软件基金会的一个项目,用于管理Java项目的构建、报告和文档生成。它通过一个统一的配置文件(pom.xml)来管理项目依赖关系,简化构建过程。在这个系统中,Maven负责下载和管理所有依赖库,如JUnit、...

    Spring框架、SpringMVC框架、Maven高级(缺)、SpringBoot框架、MyBatis-Plus框架

    Maven 是一个项目管理工具,虽然这里提到的“Maven 高级”部分缺失,但通常 Maven 能帮助开发者管理项目的构建、依赖、版本控制等,使得大型项目管理更加有序。 SpringBoot 是为了简化 Spring 应用的初始搭建以及...

    idea springBoot 源码

    Maven是Java项目管理工具,用于构建、依赖管理和项目信息管理。项目被划分为三个模块:base、service和dao。这通常意味着: 1. **base模块**:基础模块,可能包含一些通用的工具类、配置和模型对象。 2. **service...

    ssm相关使用教程及maven web 使用步骤

    ### SSM框架使用教程及Maven Web项目搭建步骤 #### 一、SSM框架简介 SSM框架是指Spring、SpringMVC以及MyBatis这三个开源框架的整合使用。Spring负责管理整个应用程序的生命周期,SpringMVC是Spring的一个模块,...

    SSM框架(IDEA+Spring+SpringMVC+Maven+Mybatis+MySQL)

    SSMManager可能是这个项目的主要管理类或者模块,可能包含了对整个SSM框架的初始化和配置。在实际开发过程中,我们还需要了解和掌握Servlet、JSP、HTML、CSS、JavaScript等相关知识,以及如何配置和优化SSM的各个...

Global site tag (gtag.js) - Google Analytics