私はMavenと共にIntelliJを使用しています。 logback.groovy
やいくつかのプロパティファイルなどの外部設定フォルダ(つまり、jarファイルには含まれていない)を作成したいとします。このフォルダはmavenによってクラスパスに追加されます(maven-jar-plugin経由、Maven - how can I add an arbitrary classpath entry to a jar?参照)。しかしIntelliJの内部からプロジェクトを実行すると、このクラスパスのエントリは追加されず、対応するフォルダの内容は見つかりません。ランタイムモジュール依存としてフォルダを追加すると問題は解決しますが、きれいに見えません。クラスパスエントリがIntelliJに追加されるようにmavenを構成する方法はありますか?それが不可能な場合は、どういうわけか依存関係に頼らずにクラスパスエントリを実行に追加できますか? eclipseでは、実行コンフィギュレーションに任意のクラスパスエントリを追加することができました。私はちょうどIntelliJのいくつかのメニューが欠けていると確信しています。Mavenを使用したIntelliJ:リソースをコピーせずにクラスパスエントリを追加してください
リソースが(mavenまたはIntelliJのいずれかで)リソースとしてマークすることはオプションではないことに注意してください。フォルダの内容はtarget/classes
にコピーされ、jarにバンドルされます。
EDIT:なぜ別のフォルダの理由:外部ライブラリ(例えばlogback)は、(私が理解する限り)介入の可能性なしに直接クラスパスから依存関係を読み込みます。私は非常に多くの場所に設定ファイルの負荷を置くことを嫌い、代わりにできるだけ集中するようにしたい。
フォローアップ質問:ここでクラスパスの概念を誤って使用していますか?
1. '-cp'は何かを追加するのではなく、クラスパスを設定するのですか?そうではありませんか? 2.それは良い提案です、ありがとうございます。 – incaseoftrouble
@Megge、cpの場合、classpathにCLASSPATH = $ CLASSPATH + new_cp_entryを追加すると、古いトリックを使うことができます。 – arghtype
ちょうど好奇心から:私はこのケースでどのくらい正確にそれをするだろうか?申し訳ありませんが、ちょっと疑わしい質問のようですが、 '$ CLASSPATH'はVMオプションに追加されても解決されません。 – incaseoftrouble