私はMavenを使用して、Tomcatで実行されるJavaWebアプリケーションを構築しています。特定のJARファイル(mail-1.4.1.jarやデータベースドライバーなど)がtomcat / libディレクトリに配置され、mavenの依存関係が「提供」に設定されています。(理由は100%わかりませんが、JNDIと関係があると思います。)
これで、を使用して実行しようとしているのと同じMavenプロジェクトにスタンドアロンの実行可能Javaプログラムを構築しましたmvn exec:java
。当然のことながら、mail.jarが見つからず、エラーが発生しますjava.lang.NoClassDefFoundError: javax/mail/Session
Tomcatアプリに「提供」されている間に、スタンドアロンJavaプログラムにjavax.mail scope = "runtime"を指定するにはどうすればよいですか?Mavenプロファイルを使用する必要がありますか?もしそうなら、これがどのように機能するかについての有用なドキュメントをどこで見つけることができますか(プロファイルの依存関係は追加的ですか、それともデフォルトのものを上書きしますか?)