【问题标题】:Idea IntelliJ. how creating maven project. what about pom.xml and .iml files想法 IntelliJ。如何创建maven项目。 pom.xml 和 .iml 文件呢?
【发布时间】:2013-09-19 08:38:29
【问题描述】:

我刚开始使用 java,并创建了一个项目。 它的 maven 项目(我还没有使用过 maven)

所以我的项目有两个模块 A 和 B。 B 依赖于 A,A 依赖于远程 maven repo 中的一些。 B 也依赖于一些远程仓库。 它在 Idea IntelliJ 中运行良好,并且可以很好地构建 jar。

但是 afaik .iml 文件是 Idea IntelliJ 特定的。并且 pom.xml 是特定于 Maven 的。 当我检查文件时,为什么项目的所有 depedecy 都写在 .iml 文件和 .idea 目录中而不是 pom.xml(s)

如果您想查看真实世界的源代码,那么 here 它只是用于深入学习 java 的 alpha 项目。 当我尝试在travis-ci.org 上构建项目时,它无法解决项目的依赖关系

【问题讨论】:

    标签: java maven intellij-idea


    【解决方案1】:

    梅格拉吉,

    我在此处分叉了您的 WebTrimmer 存储库:https://github.com/ajorpheus/WebTrimmer 并修复了一些阻碍成功构建的问题:

    1. travisci 失败,因为 lib 文件夹中有三个 jar,CI 无法使用这些 jar,因为它正在执行 maven 构建。

      修复方法是删除这三个 jar 并引入相应的 maven 依赖项,如 this 提交。

    2. 在添加 maven 依赖项时需要排除,如下所述:The following artifacts could not be resolved: javax.jms:jms:jar:1.1

    3. WebTrimmerUI 依赖于其兄弟模块 WebTrimmerEngine 中的类,因此需要相应的依赖关系。

    我已将该项目转换为与 IDE 无关的纯 maven 项目。通过上述更改,我可以从命令行构建项目并期望 travisci 也应该能够。

    关于为什么依赖项在 .iml 中重复的问题 --- 这不是 CI 作业失败的原因。该文件中的依赖关系是 pom.xml 中依赖关系的快照。此快照会在用户手动重新导入 maven 项目时更新,或者如果 maven 项目设置为“自动导入”则自动更新。
    正如 Peter Lawrey 在他上面的评论中提到的,如果你在项目中添加一个 jar,maven 不知道它,它只会出现在 .iml 文件中。

    一般来说,要搜索和添加 maven 依赖项,以下方法一直对我有用:https://stackoverflow.com/a/10178586/325742

    希望这会有所帮助!

    【讨论】:

    • 嗨 Jindal,我真的很感谢你,因为你知道我不希望我的项目与 IDE 无关,所以现在我尝试在 IDEA 中重新导入,但那没有写pom.xml 中的依赖项
    • 请不要删除你的分叉回购,直到我合并它,你知道我是新手还在学习。
    • 好的。如果您将我的分叉版本导入 Intellij,它应该可以正常工作。
    • 酷,回购是公开的,我不会删除它。完成后告诉我。
    • 我现在已经压缩并保存了你的更改,但是我如何在不进入 cmd 行的情况下将你的 repo 代码合并到我的 github 或 ide 中
    【解决方案2】:

    你需要自己给 pom 添加依赖。 .iml 文件用于存储您当前正在处理的任何项目的项目特定设置。

    拥有 pom 文件允许您的 maven 构建独立于 IDE,而 .iml 文件要求您拥有 IntelliJ。

    您可以从正在使用的版本控制中排除 .iml 文件。您还可以通过 IntelliJ 打开其 pom.xml 直接打开现有的 maven 项目,IntelliJ 可以自动导入 pom 文件中指定的所有内容并生成新的 .iml 文件。

    【讨论】:

    • 不是有自动化的东西吗,如果IDE知道所有的依赖并且构建项目很好,即使它必须通过'project structer'区域进行配置,那意味着什么
    • 为什么 Idea 说它支持 maven
    • 什么意思?
    • 好的,你需要诚实地阅读一些基本的 maven 教程,由于缺乏基本的理解,我已将其标记为关闭。
    • 我发现添加依赖项选项只将它们添加到项目而不是 pom.xml,我怀疑是一个错误。我总是编辑 pom.xml 并导入它。
    猜你喜欢
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    • 2019-06-28
    • 2022-07-19
    相关资源
    最近更新 更多