Idea IntelliJ。如何创建maven项目。那么pom.xml和.iml文件呢?

时间:2013-09-14 22:21:32

标签: java maven intellij-idea

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

所以我的项目有两个模块A和B. 和B取决于A,A取决于远程maven repo中的一些。和B还取决于一些远程回购。 它在Idea IntelliJ中运行良好,可以很好地制作罐子。

但afaik .iml文件是Idea IntelliJ特定的。和pom.xml是maven特有的。 当我检查文件时为什么项目的所有权限都是用.iml文件和.idea dir而不是pom.xml(s)编写的

如果你想看到现实世界的来源,那么here它就是它深深学习java的alpha项目。 当我尝试在travis-ci.org上构建项目时,它无法解决项目的依赖关系

2 个答案:

答案 0 :(得分:3)

梅格拉杰,

我在这里分发了你的WebTrimmer回购:https://github.com/ajorpheus/WebTrimmer并解决了一些妨碍成功构建的问题:

  1. travisci失败是因为你在lib文件夹中有三个jar,因为它正在进行maven构建,所以CI不可用。

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

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

  3. WebTrimmerUI依赖于它的兄弟模块WebTrimmerEngine中的类,因此需要相应的依赖。
  4. 我已将项目转换为与IDE无关的纯maven项目。通过上述更改,我可以从命令行构建项目,并期望travisci也能够。

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

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

    希望这有帮助!

答案 1 :(得分:1)

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

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

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