java - 在构建的 JAR 之外指定 jndi.properties 位置
问题描述
我正在使用 Intellij。
我有一个 jndi.properties 文件(用于连接到 Wildfly 实例)。
默认情况下,Maven 在构建后将此文件包含在 JAR 中。这不好,因为 jndi.properties 包含 Wildfly 实例的 URL 和凭据,并且在生产中它们会有所不同。
我设法通过将 jndi.properties 文件放在一个单独的文件夹(称为 config)中来排除它,然后在 Intellij -> Module Settings -> Sources 中,我将 config 文件夹标记为 Resources 和 Excluded。这样,当我在 Intellij 中运行应用程序时,它工作正常。但是当我构建 JAR 时,即使我在 JAR 之外放置了一个名为 config 的文件夹,我仍然会收到异常,因为在类路径中找不到 jndi.properties 文件。
如果我在“模块设置”的“依赖项”选项卡中声明配置文件夹,也会发生同样的情况。
我也尝试在运行 java cmd line 工具时指定类路径,但似乎 -cp 不能与 -jar 一起使用。
我知道两种选择,但我不太喜欢它们:在 JAVA_HOME/lib 中有 jndi.properties(不好,它对所有应用程序都很常见)或在运行时(-Djava.naming.provider.url 等,而不是我认为清除为配置文件)。
有什么方法可以在运行时指定 jndi.properties 文件位置吗?
解决方案
推荐阅读
- c# - SetContentView(在 OnPause 后 OnResume 时)没有看到最后的内容
- python - 从 Keras 加载 InceptionV3 时负责显示 ETA 的程序
- r - 为什么操作按钮无法正常工作,以及如何在我的应用程序中添加进度条?
- c# - 使用 SelectList 从 DropDownList 中获取 AspNetUsers 的 ID
- java - Android Gotev Upload Image Bad notification for startForeground: java.lang.RuntimeException: invalid channel for service notification
- qqmlcomponent - QML如何通过单击listView代表内定义的复选框来获取ListView中的索引号?
- c++ - 从文件c ++读取时的无限循环
- reactjs - 我无法从 React Typescript 组件上的 onChange 获得结果
- html - 使用来自文本字段的快速 JS 值处理多部分表单数据在 req.body 中为空
- javascript - 如何使用 Drive API 设置文件的元数据?