Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven IntelliJ项目中声明依赖项的多种方法_Java_Maven_Intellij Idea_Pom.xml - Fatal编程技术网

Java Maven IntelliJ项目中声明依赖项的多种方法

Java Maven IntelliJ项目中声明依赖项的多种方法,java,maven,intellij-idea,pom.xml,Java,Maven,Intellij Idea,Pom.xml,在IntelliJ中的新Maven项目中,我看到了两种声明新依赖项的方法: 手动编辑pom.xml文件,添加声明。 这会自动(maven自动导入处于启用状态)将maven:…条目添加到project.iml文件中,一切正常 使用文件->项目结构->依赖项菜单。此仅在.iml文件中创建条目 这似乎是不想要的行为。IntelliJ在导入pom.xml Maven文件时不会覆盖.iml文件,但会合并pom.xml中的依赖项和.iml中另外定义的依赖项 我想在我的团队中实施一种添加依赖项的单一方法(对于

在IntelliJ中的新Maven项目中,我看到了两种声明新依赖项的方法:

  • 手动编辑pom.xml文件,添加
    声明。 这会自动(maven自动导入处于启用状态)将
    maven:…
    条目添加到project.iml文件中,一切正常
  • 使用
    文件->项目结构->依赖项
    菜单。此仅在.iml文件中创建条目
  • 这似乎是不想要的行为。IntelliJ在导入pom.xml Maven文件时不会覆盖.iml文件,但会合并pom.xml中的依赖项和.iml中另外定义的依赖项

    我想在我的团队中实施一种添加依赖项的单一方法(对于外部mvn构建,仅使用pom.xml),并且能够绕过pom.xml并直接将依赖项添加到.iml中,这会产生一种有效构建的假象(事实上并非如此)

    我错过什么了吗?如何实施添加依赖项的一种方法?IntelliJ是否有办法将依赖项添加到pom.xml文件而不是.iml文件

    编辑 在这个问题()中,据称

    这也可以用于在不更改pom.xml的情况下试验依赖项。请注意,您所做的所有修改将在下次Maven导入时恢复


    但这不是我看到的行为。.iml文件不会被还原,而是被合并。

    Pom.xml
    只供Maven使用,如果您正确配置了IDE,IntelliJ会从
    Pom.xml
    中提取依赖项。但是,如果您想单独使用maven,可以将JAR添加到本地maven repo中,然后通常通过
    标记从
    pom.xml
    调用它们

    您可以学习如何添加本地jar。

    听起来您需要一个环境


    这不会阻止你的团队成员在错误的地方添加依赖关系,但是它会确保很早就被捕获,并将它们标记为他们需要添加到你的POM中,然后它就归结为教育。

    为什么你会考虑IML文件?如果您的项目需要跨所有IDE进行编译,那么是什么情况?永远不要依赖于特定于IDE的.iml。我的建议是添加pom.xml,无论您使用何种IDE,它都能正常工作。