我将 IntelliJ 与 Maven 一起使用。我想创建一个外部配置文件夹(即不包含在 jar 中),其中包含 logback.groovy 和一些属性文件等内容。该文件夹由 maven 添加到类路径中(通过 maven-jar-plugin,请参阅 Maven - how can I add an arbitrary classpath entry to a jar? )。但是,如果我从 IntelliJ 内部运行该项目,则不会添加此类路径条目,并且找不到相应文件夹中的内容。将文件夹添加为运行时模块依赖项可以解决问题,但看起来不是很干净。有什么方法可以配置 Maven,以便将类路径条目也添加到 IntelliJ 运行中。如果那不可能,我可以以某种方式向执行添加类路径条目而不诉诸依赖项等吗?在 Eclipse 中,我可以向运行配置添加任意类路径条目,我确信我只是缺少 IntelliJ 中的一些菜单。
请注意,将文件夹标记为资源(在 maven 或 IntelliJ 中)不是一个选项,因为文件夹内容随后会复制到 target/classes
并捆绑到 jar 中。
编辑:为什么要使用单独的文件夹的理由:外部库(例如 logback)直接从类路径加载其依赖项,而无需太多干预(据我所知)。我非常不喜欢将大量配置文件放在各处,而是希望它们尽可能集中。
后续问题:我在这里滥用了类路径的概念吗?
最佳答案
我不确定您的配置是什么样的,但您可以尝试以下操作之一:
您可以通过。 似乎不允许在那里使用环境变量,这使得这种方式太困难:需要为 idea runner 提供应用程序 cp 和 cp 条目。-cp
更新类路径标记于Run Configuration > JDK Settings > VM Options
您实际上可以在配置中运行 Maven,而不是 IDEA 的 make。请参阅
Run Configuration > Before Launch
,您应该删除默认的Make
并将其替换为 Maven 目标(例如clean compile
)。
关于java - IntelliJ 与 Maven : Add classpath entry without copying the resources,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36569222/