提交Java面试编程项目最优方式:选Maven还是普通Java项目结构
面试编程挑战Java项目提交方案建议
- 首先明确:主办方要求仅提交源代码、请勿包含编译产物或二进制依赖,jar包属于二进制依赖范畴,绝对不能和源代码一起提交,提交即不符合提交规则。
优先选择:改用Maven管理依赖
Maven是Java生态的标配构建工具,几乎所有Java相关的评审环境都会预装,完全不需要担心评审方设备没有安装的问题,就算极端情况下未预装,Maven的安装成本也远低于手动管理jar包的成本。
你只需要做以下几步调整即可:
- 按照标准Maven目录结构整理代码:业务源代码放入
src/main/java目录,测试代码(如果有)放入src/test/java目录 - 在项目根目录新建
pom.xml文件,将你用到的所有jar包对应的Maven依赖坐标写入文件,不需要再保留本地的jar包文件 - 在项目根目录新增
README.md文件,写明编译运行命令即可,比如:- 编译命令:
mvn clean package - 运行命令:
java -jar target/[你的项目打包后的jar名].jar,如果是普通主类运行则写java -cp target/classes [你的主类全限定名]
- 编译命令:
这种方案最符合行业通用规范,评审人员操作起来没有额外理解成本。
替代方案:零构建工具依赖的脚本方案
如果你实在不想引入Maven,也可以用纯文本脚本的方案,完全不需要依赖任何额外构建工具:
- 在
README.md中列出你用到的所有jar包的名称、版本、官方下载地址,告知评审人员提前将这些jar包放入项目根目录的lib文件夹下 - 在项目根目录写两个可执行shell脚本(脚本是纯文本文件,不属于二进制产物,符合提交要求):
- 编译脚本
compile.sh:内容对应你的项目结构,示例:javac -cp "lib/*" src/[你的包路径]/*.java -d classes - 运行脚本
run.sh:内容示例:java -cp "lib/*:classes" [你的主类全限定名]
- 编译脚本
- 在
README.md中说明执行顺序:先执行./compile.sh完成编译,再执行./run.sh运行程序即可
两种方案都完全符合提交规则,优先推荐Maven方案,调整成本最多10分钟,不会额外增加评审人员的运行负担,也不会因为打包配置问题影响你的代码成果评估。
内容的提问来源于stack exchange,提问作者paul88
相关产品推荐
相关产品推荐

