Eclipse中Gradle的入门配置
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具... ...当前其支持的语言限于Java、Groovy、Kotlin和Scala...
嗯,没错,这就是我把它归类到 编程语言/Java 而不是 软件/编译 的原因。
相比于maven,Eclipse对于gradle的可视化操作的友好程度大大下降。只提供最基础的项目创建、任务运行(修改了配置文件之后居然还不会自动更新任务)和配置文件高亮功能。甚至连依赖配置都只能自己动手修改文件完成。虽然不难,但是不直观啊,对新手入门也不友好。反正我是搜了好久教程,七拼八凑弄出来的。
简要列出三大运行项目的方法[1]:
-
暴力寻找主类运行。由于gradle只是一个项目构建工具(和cmake有点像?),并不负责对被处理对象进行运行操作,故默认状态下我们只能得到编译好的class文件。故最原始粗暴的方法便是手动为Eclipse指定一个运行时的主类。而当Eclipse在检测到所有项目文件均已编译好时,会直接运行项目,间接达到了目的:因为依赖配置使用的是gradle,直接使用Eclipse调用javac编译的话可能会出现缺少包的错误。
-
加载
application
插件。gradle可以通过插件扩展其功能。application
插件能够为gradle添加一个Application Tasks/run
的任务,通过该任务可以直接运行项目。 在build.gradle文件的最外层里添加apply plugin 'application' mainClassName = 'your.main.class'
将
your.main.class
换成项目的入口类,会自动调用其main
方法运行项目。 没有mainClassName的话,build
和run
任务都会出错,因为application
插件将不知道你需要将哪个包作为应用程序运行。 - 这个更暴力了。。编译成jar然后自己去命令行运行(捂脸)
jar { manifest.attributes 'Main-Class': 'com.mycompany.Main' from configuration.compile.collect { zipTree it} }
然后
gradle/gradlew build
生成jar包,然后用对应的java命令执行(通常是java -jar file.jar
)即可。
添加依赖的方法:
-
最简单粗暴(对应maven):
<scope> '<group>:<artifact>:<version>' ======================================================= <scope> IN compile, test, testCompile, runtime, etc.
scope
与maven中的部分对应。 例:runtime 'mysql:mysql-connector-java'
<< 最后一个版本号可以省略,应该是默认取最新版本吧? -
优雅一点:
<scope> group: '...', name: '...', version: '...' ======================================================= <scope> IN compile, test, testCompile, runtime, etc.
例:
runtime group: 'mysql', name: 'mysql-connector-java', version: '8.0.16'
- 本地文件:
<scope> fileTree(dir: 'lib', includes: ['mysql-connector-java-8.0.16.jar']) ======================================================= <scope> IN compile, test, testCompile, runtime, etc.
该写法会让gradle到项目根目录下的
lib
文件夹里寻找mysql-connector-java-8.0.16.jar
。