Intellij 里模块的理解 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
esolve
V2EX    Java

Intellij 里模块的理解

  •  
  •   esolve 2017-05-08 04:22:39 +08:00 5072 次点击
    这是一个创建于 3112 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以前一直用 eclips 这次用 intellij 看一个 web 项目 结构如下

    就是普通的那种 eclipse web 项目

    在 intellij 下, 模块结构如下:

    <project version="4"> <component name="ProjectModuleManager"> <modles> <module fileurl="file://$PROJECT_DIR$/inxedu.iml" filepath="$PROJECT_DIR$/inxedu.iml"/> <module fileurl="file://$PROJECT_DIR$/src/main/main.iml" filepath="$PROJECT_DIR$/src/main/main.iml"/> </modules> </component> </project>

    我很奇怪啊 /src/main 明明就是这个项目的一个组成部分 为何被独立出来成为一个模块? 使得项目模块和这个组成部分平行关系似的

    14 条回复    2017-05-08 15:51:52 +08:00
    esolve
        1
    esolve  
    OP
       2017-05-08 04:24:12 +08:00
    esolve
        2
    esolve  
    OP
       2017-05-08 04:26:18 +08:00
    晕,没有一个图成功的。。

    http://chuantu.biz/t5/80/1494188684x2890173759.png
    gam2046
        3
    gam2046  
       2017-05-08 07:18:53 +08:00
    近似概念:
    Eclipse Workspace 对标 Idea Project
    Eclipse Project 对标 Idea Module

    另外,jetbrains 全家桶 大法好。
    WispZhan
        4
    WispZhan  
       2017-05-08 08:04:32 +08:00 via Android
    @gam2046 个人感觉虽然这个说法没有错,但是还是有点不合适。

    主要是 eclipse 的 workspace 这个概念很容易混淆。

    可以看其实如果用过 VS 的话,IDEA 的 project 更像是 VS 的解决方案。解决方案里包含 project。

    ---

    其实这些都是模块化方案的一种体现。具体看 OSGi 或者 Jigsaw。又或者 Java 官方文档里的模块化内容。
    Ouyangan
        5
    Ouyangan  
       2017-05-08 09:40:15 +08:00
    eclipse 转 idea 很多人都会有这种困惑 , 多用用就好了..
    lovedebug
        6
    lovedebug  
       2017-05-08 09:47:53 +08:00
    idea 里面模块就是工程,可以导入多个工程(模块)
    如果 eclipse 转,先把旧工程里的模块挨个导入,然后手动设置依赖。
    src/main 这种方式不是约定吗? 约定优于配置
    tedzhou1221
        7
    tedzhou1221  
       2017-05-08 10:09:29 +08:00
    这不是 Maven 的项目结构吗?约定好的啊
    如果你自己随便创建个 Web 项目,你会觉得又不一样了
    esolve
        8
    esolve  
    OP
       2017-05-08 11:38:55 +08:00
    @lovedebug 我不懂的是
    inxedu 这个工程包括了 main 啊
    为何 main 和 inxedu 是模块平行关系?
    lovedebug
        9
    lovedebug  
       2017-05-08 12:21:41 +08:00
    @esolve 在项目 Project Struce 设置里应该只有一个模块才对
    你在项目设置里能看到你的 module 名字是 inxedu,但是 maven 工程默认把 src/main 视作 source 了。所以就平级了。
    lovedebug
        10
    lovedebug  
       2017-05-08 12:23:21 +08:00
    idea 支持一个项目(Maven 项目)多重模块(Project 即 maven 子模块)
    yuedong
        11
    yuedong  
       2017-05-08 13:19:04 +08:00
    楼主的疑问是 /src/main 为何是一个 module,其实,你自己用 IDEA 新建一个 maven 工程,是不会把 /src/main 当做 module 的,或许你是导入进来没处理好,正常情况下不会有 /src/main/main.iml 的
    esolve
        12
    esolve  
    OP
       2017-05-08 13:50:36 +08:00
    @yuedong 所以现在要怎么办?
    yuedong
        13
    yuedong  
       2017-05-08 15:02:16 +08:00
    @esolve 我只是建议你不要把没配置好当做是 IDEA 的规则,并且还试图去理解。至于怎么办,学习 maven、熟悉 IDEA 的 Project Structure,比照常规工程配置。
    esolve
        14
    esolve  
    OP
       2017-05-08 15:51:52 +08:00
    @yuedong maven 和 project structure 现在大致了解
    但是怎么针对这个特殊例子就不知道怎么办了。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3062 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 10:45 PVG 18:45 LAX 02:45 JFK 05:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86