コンパイラプラグインのエントリに基づいてmavenがjdkを切り替えたくない理由を理解するために丸一日を費やした後( http://maven.apache.org/plugins/maven-compiler-plugin/examples/compile-usingを参照) -different-jdk.html)コンパイラが正しく切り替わっていることを発見しましたが、jarツールは正しく切り替わっていません。次の事実を考慮してください。
テストとして、コードにマルチキャッチブロックを追加しました。タグをjava7に設定すると、コンパイルされます。1.6に変更すると壊れます。これは予想される動作です。
ただし、diamond演算子を削除して(つまり、両方でコンパイルして)、Java 6でコンパイルすると、マニフェストファイルに次のようになります。
マニフェスト-バージョン:1.0アーカイバ-バージョン:Plexusアーカイバ作成者:Apache Maven作成者:jacoビルド-Jdk:1.7.0_147-icedtea .. ..
もちろん、これはかなりあいまいです。マニフェストファイルが使用されているバージョンを反映するように、正しい「jarツール」を設定する方法はありますか?