Compilation 对Intellij编译东西和处理资源的方式感到困惑

Compilation 对Intellij编译东西和处理资源的方式感到困惑,compilation,resources,intellij-idea,Compilation,Resources,Intellij Idea,我是VisualStudio的IntelliJ新手,对于IntelliJ项目中的资源文件是如何工作的,我通常很困惑。我读了一些关于将资源放到类路径上的问题和答案,以及IntelliJ文档,但仍然感到困惑。我还有几个问题: 有些问题提到maven,有些则没有。maven项目与普通模块在编译和处理资源方面有什么不同 当我从IntelliJ中运行main方法时,它从何处运行?直接从编译的.class文件,还是从生成的jar文件?在文件系统中,这两个文件都存在于哪里?它们有什么区别 如果我只是把一个.x

我是VisualStudio的IntelliJ新手,对于IntelliJ项目中的资源文件是如何工作的,我通常很困惑。我读了一些关于将资源放到类路径上的问题和答案,以及IntelliJ文档,但仍然感到困惑。我还有几个问题:

  • 有些问题提到maven,有些则没有。maven项目与普通模块在编译和处理资源方面有什么不同
  • 当我从IntelliJ中运行
    main
    方法时,它从何处运行?直接从编译的
    .class
    文件,还是从生成的
    jar
    文件?在文件系统中,这两个文件都存在于哪里?它们有什么区别
  • 如果我只是把一个
    .xml
    文件放在源代码树的某个地方,那么当从IntelliJ中编译和运行时,IntelliJ默认会如何处理它?我怎样才能改变它的位置
  • 在IntelliJ中运行
    main
    函数时,类路径是什么
  • 如何在编译的输出中获得包含在jar文件中或与之并行的任意文件
  • 在Maven项目中,IDE遵循Maven规则来处理资源,以便在命令行Maven构建和IDEA构建之间获得一致的结果。如果Maven将资源复制到类路径,IDEA也会这样做

  • 从模块的类路径及其依赖项,通常使用
    .class
    文件

  • 在非Maven项目中,根据
    设置
    |
    编译器
    |
    资源模式将资源复制到输出。在Maven项目中,根据
    pom.xml
    resources规则处理资源。将自动复制
    资源
    文件夹中的文件。其他文件夹需要使用
    pom.xml
    手动添加到资源中

  • 您可以在运行控制台中打印的命令行中查看类路径

  • 在Maven项目中,使用
    resources
    文件夹。在非Maven项目中,该文件应位于源根目录下,并且其扩展名需要出现在
    资源模式中


  • 还要注意,如果您使用的是遗留编译(
    externalbuild
    disabled),即使在Maven项目中,IDEA也将使用
    资源模式
    配置,并且IDEA和Maven之间的输出将不同。IDEA 11和旧版本也是如此。

    谢谢。如何将资源从jar内部更改为与之并行?默认设置是什么?我不理解你的问题,请澄清。@CrazyCoder:我在java类的主方法中有以下语句
    final ConfigurableApplicationContext context=new ClassPathXmlApplicationContext(“integration context.xml”)
    和资源目录中的
    integration context.xml
    文件。但是当我运行main方法时,IDEA说,找不到文件。将示例项目发送给支持人员,并在那里描述问题。如果不需要调整每个资源目录的输出目录,那么配置/就像一个符咒。但若您按照Maven docs()实现它,IDEA似乎忽略了这一点。有什么解决办法吗?也许,我会用这个想法来记录一个bug。