java - IntelliJ 与 Maven : Add classpath entry without copying the resources

标签 java maven intellij-idea

我将 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)直接从类路径加载其依赖项,而无需太多干预(据我所知)。我非常不喜欢将大量配置文件放在各处,而是希望它们尽可能集中。

后续问题:我在这里滥用了类路径的概念吗?

最佳答案

我不确定您的配置是什么样的,但您可以尝试以下操作之一:

  1. 您可以通过 -cp 更新类路径标记于Run Configuration > JDK Settings > VM Options 似乎不允许在那里使用环境变量,这使得这种方式太困难:需要为 idea runner 提供应用程序 cp 和 cp 条目。

  2. 您实际上可以在配置中运行 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/

相关文章:

intellij-idea - Lombok @RequiredArgsConstructor(onConstructor_ = {@MyAnnotation}) IntelliJ IDEA 编译错误

java - 在哪里可以找到 ISO Schematron validator 的 Java 实现?

java - 如何在maven构建过程中链接本地存储库

java - 如何为 heroku 创建 procfile 文件?

java - 如果指定了参数,则从 Maven 运行 java 类

maven - 创建maven项目失败: '.../pom.xml' already exists in VFS (IntelliJ)

java - IntelliJ 和 SVN : "no changes detected" upon commit

java - 始终使用 jhipster 将日期保存到数据库中的今天日期

java - Spring MVC 从 RequestMapping 引用 params 变量

java - 使用 glide 空指针异常从图库选择图像到 imageview