如何查看Eclipse构建WAR包时执行的完整javac、jar命令以复刻构建流程?
如何查看Eclipse构建WAR包时执行的完整javac、jar命令以复刻构建流程?
我明白你想复刻Eclipse构建WAR的流程,不管是写独立脚本还是迁移到Maven,拿到准确的javac和jar/war命令确实是关键。之前试的-console和-debug没出效果很正常,Eclipse默认不会把这些底层执行命令直接暴露出来,不过有几个靠谱的方法能帮你拿到:
开启Eclipse详细构建日志
你可以让Eclipse输出完整的编译命令细节:- 打开
Window > Preferences > Java > Compiler > Building - 勾选「Output full build log」选项,还能指定日志文件的保存路径
- 重新触发项目构建(比如先Clean再Build),此时控制台或者你指定的日志文件里,会打印出每一条
javac的执行命令,包含所有参数——比如类路径、源文件版本、目标字节码版本、编码格式等
针对WAR打包的部分,你可以在Preferences > General > Workspace > Logging里把日志级别调到Debug,然后查看项目打包过程的日志,里面会包含WTP(Eclipse的Web工具平台)执行打包相关的命令细节。
- 打开
导出Ant构建脚本(最直接的方案)
Eclipse可以直接导出和当前项目构建配置完全一致的Ant脚本,里面包含了编译、打包的完整逻辑,甚至能直接运行:- 右键你的Web项目,选择
Export > General > Ant Buildfiles - 导出后打开生成的
build.xml,里面的<javac>任务就是Eclipse实际使用的编译参数,<war>任务则对应WAR打包的所有配置。你可以直接用Ant执行这个脚本,也能从中提取出对应的javac、war命令参数,改成自己的shell脚本。
- 右键你的Web项目,选择
查看Eclipse临时构建目录(备选方案)
Eclipse会在工作空间的.metadata/.plugins/org.eclipse.jdt.core目录下,存放编译时的临时配置和命令记录,不过这个方法比较繁琐,信息也不够直观,优先级不如前两个。
另外针对你提到的迁移到Maven的需求:
M2E生成的基础pom确实不够完善,你可以结合上面拿到的Ant脚本或者构建日志,把Eclipse里的配置映射到Maven的pom.xml中:
- 把Eclipse Build Path里的依赖,转换成Maven的
<dependency>节点(可以对照依赖jar包,去Maven仓库查找对应的groupId和artifactId) - 把编译的source/target版本、编码等参数,写到pom的
<build>节点下的<maven-compiler-plugin>配置里 - WAR打包的配置,可以通过
<maven-war-plugin>来对应Eclipse里的Web项目设置(比如Web资源目录、打包排除项等)
备注:内容来源于stack exchange,提问作者Iresh Dissanayaka
相关产品推荐
相关产品推荐

