u011856283
你好杰米
2018-07-17 02:03
采纳率: 95%
浏览 562
已采纳

请问几个关于maven模块的问题

目前公司项目是以maven模块的方式搭建的,其中有7个模块,但是有的模块是jar项目,有的模块是war项目

以前我都是单个项目直接打包运行的,现在有很多模块,而且有的是jar有的是war(web项目)
而且人家给我演示的时候直接运行起来了war的那个模块

我现在不知道该怎么打包这种项目,怎么运行,模块与模块之间有引用,而且用的容器是内嵌的jetty

【主要是我以前没有用过模块,求大神解释】

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • Elephant3G
    Elephant3G 2018-07-17 03:34
    已采纳

    上面的回答格式乱了,抱歉。

    这里面主要涉及聚合模块以及父子模块继承的问题。掌握好就可以了。

    假如你有一个项目名称为PRJ,依赖下面的三个模块,分别是common,service,以及web,
    目录结构如下:
    PRJ ...聚合模块,packaging方式为pom,这个很关键,然后modules要列出它的子模块
    +common ...JAR
    +service ...JAR,依赖common
    +web ...WAR,依赖common和service,注意packaging方式为war

    那么可以这么写pom文件
    1.PRJ项目的pom.xml:

        <groupId>g</groupId>
        <artifactId>a</artifactId>
        <version>1.0</version>
        <packaging>pom</packaging>
    
        <modules>
            <module>common</module>
            <module>service</module>
            <module>web</module>
        </modules> 
    

    2.common模块的pom.xml:

         <parent>
            <groupId>g</groupId>
            <artifactId>a</artifactId>
            <version>1.0</version>
        </parent>
        <artifactId>common</artifactId>
    

    3.service模块的pom.xml:

         <parent>
            <groupId>g</groupId>
            <artifactId>a</artifactId>
            <version>1.0</version>
        </parent>
        <artifactId>service</artifactId>
    

    3.web模块的pom.xml:

         <parent>
            <groupId>g</groupId>
            <artifactId>a</artifactId>
            <version>1.0</version>
        </parent>
        <artifactId>web</artifactId>
            <packaging>war</packaging>
    

    只要你目录关系正确,那只要模仿上面方式,你针对PRJ或者web进行mvn clean install处理,是可以正常打包的。
    至于里面的依赖关系dependencies的写法,我就省略了,希望能对你有所帮助。

    点赞 评论
  • gf0515
    Fatal Error 2018-07-17 02:23

    jar包是被war包依赖的吧,war包是在服务器端运行的,打包的时候直接在父项目的pom路径下 mvn clean package -DskipTests就可以了,首次打包的话用mvn clean install -DskipTests

    点赞 评论
  • Elephant3G
    Elephant3G 2018-07-17 03:23

    这里面主要涉及聚合模块以及父子模块继承的问题。掌握好就可以了。

    假如你有一个项目名称为PRJ,依赖下面的三个模块,分别是common,service,以及web,
    目录结构如下:
    PRJ ...聚合模块,packaging方式为pom,这个很关键,然后modules要列出它的子模块
    +common ...JAR
    +service ...JAR,依赖common
    +web ...WAR,依赖common和service,注意packaging方式为war

    那么可以这么写pom文件
    1.PRJ项目的pom.xml:
    g
    a
    1.0
    pom

    <modules>
        <module>common</module>
        <module>service</module>
        <module>web</module>
    </modules>
    

    common模块的pom.xml:

    g
    a
    1.0

    common

    service模块的pom.xml:

    g
    a
    1.0

    service

    web模块的pom.xml:

    g
    a
    1.0

    web
    war

    只要你目录关系正确,那只要模仿上面方式,你针对PRJ或者web进行mvn clean install处理,是可以正常打包的。
    至于里面的依赖关系dependencies的写法,我就省略了,希望能对你有所帮助。

    点赞 评论

相关推荐