无法运行的jar文件
在Java程序中,经常需要使用第三方的库(一般以jar包的形式出现)。在脚本中,可以通过下面的方式添加依赖:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| apply plugin: 'java'
repositories { mavenCentral() }
dependencies { compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.5' compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.5' }
jar { manifest { attributes 'Main-Class': 'com.shizhihua.example.TestLog' } }
|
按照上面生成jar文件,如果直接运行,会出现找不到依赖的问题。
生成runnable的jar文件
为了解决这个问题,可以在脚本中添加一段代码,生成胖jar文件。这样的jar文件可以直接运行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| apply plugin: 'java'
repositories { mavenCentral() }
dependencies { compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.5' compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.5' }
jar { from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
manifest { attributes 'Main-Class': 'com.shizhihua.example.TestLog' } }
|
application插件
1 2 3 4 5 6 7 8 9 10 11 12
| apply plugin: 'application'
repositories { mavenCentral() }
dependencies { compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.5' compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.5' }
mainClassName = "com.shizhihua.example.TestLog"
|
运行gradle tasks
,可以看到很多的task。其中有两个常用的新task:
可以直接运行程序,看到输出结果。
可以生成可运行的文件(实际上是响应的脚本,指定了依赖库和运行的jar文文件),其中相关的依赖库也都被拷贝到对应的libs(build\install\testLog\libs
)下面。可以通过下面的命令直接运行程序:
1
| build/install/testLog/bin/testLog
|