java如何将h参数传递给maven编译器插件以创建JNI头文件
我已经试着在pom中通过这个论点,但它不承认。由于jdk 8,我们不必手动运行javah来生成头文件,而是可以将-h参数传递给javac,并在编译时生成头文件。因此,如果我可以将“-h dir”传递给maven编译器插件,我就可以在运行mvn compile时生成头文件
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<compilerArgs>
<arg>-verbose</arg>
<arg>-h .</arg>
</compilerArgs>
</configuration>
</plugin>
但当我运行mvn安装时,我得到了这个
[INFO]生成失败
[信息]------------------------------------------------------------------------
[信息]总时间:2.936秒
[信息]完成时间:2018-11-07T14:52:49+05:30
[信息]最终内存:9M/155M
[信息]------------------------------------------------------------------------
[错误]无法执行目标组织。阿帕奇。专家插件:maven编译器插件:3.7.0:在adiesha项目上编译(默认编译):致命错误编译:无效标志:-h-&燃气轮机;[帮助1]
有没有其他方法可以用maven实现这一点,或者我必须使用“javac-h dir”手动创建它们
任何帮助都将不胜感激
# 1 楼答案
我在maven构建中遇到了相同的错误“无效标志:-h目标/标题”
我尝试了上面陀螺无齿轮的建议。我把原来的'-h目标/标题'分为'-h和'-h目标/标题'。这解决了我的问题。现在,我的项目中的所有jni头都已正确生成并放置在target/headers中
下面是我的pom中完整的编译器插件配置部分。xml:
有了这个pom,“mvn compile”命令就足以生成JNI头。请注意,“mvn clean”将而不是删除以前生成的头文件