Mac用のjdk1.7では、com.sun.tools.javah.Mainの場所がclasses.jarからtools.jarに移動しました。その結果、Mavenのmaven-antrun-pluginはjavahタスクの実行を見つけることができず、ClassNotFound例外がスローされます。
Caused by: java.lang.ClassNotFoundException: com.sun.tools.javah.Main
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java :50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at org.apache.tools.ant.taskdefs.optional.javah.SunJavah.compile(SunJavah.java:57)
... 47 more
1.7場所:/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/lib/tools.jar
1.6場所:/Library/Java/JavaVirtualMachines/1.6.0_32-b05-420.jdk/Contents/Classes/classes.jar
これは、Mavenバージョン3.0.4のバグまたは失敗のようです。tools.jarをプラグインの依存関係にすることを検討しましたが、それは正しくないようです。これらのソリューションを試しましたが、機能させることができませんでした。
maven:OSに依存しない方法でtools.jar / classes.jarをロードする方法は?
Mavenの人々がMacでjdk-1.7を使用してMaven-antrun-pluginに対処するまでの回避策はありますか?