前两次呢,我们能够用一个外部的jar 来实现输出helloWorld。但问题是我每次都要用java -jar 来执行,这样我们自己玩还可以,让用户玩就不好了。所以我们生成一个exe给他们吧。这次我们仍然打印一个helloWorld,照例直接上代码,
1、进入目录D:workgradleexe,新建文件build.gradle,键入内容:
1 apply plugin: 'application' // 引入java插件, 2 3 repositories { // 从哪里找jar包 4 flatDir { 5 // 先看下build.gradle文件所在目录下的 libs目录中有没有 6 dirs 'libs' 7 } 8 maven { 9 //如果目录中木有,则找url对应的maven仓库,下面是阿里的maven仓库,速度杠杆的。 10 url "http://maven.aliyun.com/nexus/content/groups/public/" 11 } 12 //mavenCentral() //如果都木有,则取maven的官方仓库吧,只是这个速度要看人品 13 } 14 dependencies { 15 // 我们代码里需要用到的jar,可以引入不用,但是用了必须引入。 16 compile 'log4j:log4j:1.2.17' //编译时需要的jar 17 testCompile 'junit:junit:4.11' //编译测试文件所需要的 18 } 19 mainClassName = 'log.Hello'
2、进入目录D:workgradleexesrcmainjavalog,新建文件Hello.java,键入内容:
1 package log; 2 import org.apache.log4j.Logger; 3 public class Hello{ 4 private static Logger logger = Logger.getLogger(Hello.class); 5 public static void main(String [] args){ 6 logger.info("hello,world. welcome to gradle"); 7 } 8 }
3、进入目录D:workgradleexesrcmain esources,新建文件log4j.properties,键入内容:
1 ### 设置### 2 log4j.rootLogger = debug,stdout 3 4 ### 输出信息到控制抬 ### 5 log4j.appender.stdout = org.apache.log4j.ConsoleAppender 6 log4j.appender.stdout.Target = System.out 7 log4j.appender.stdout.layout = org.apache.log4j.PatternLayout 8 log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n 9 10 ### 输出DEBUG 级别以上的日志到=E://logs/error.log ### 11 log4j.appender.D = org.apache.log4j.DailyRollingFileAppender 12 log4j.appender.D.File = d://logs/log.log 13 log4j.appender.D.Append = true 14 log4j.appender.D.Threshold = DEBUG 15 log4j.appender.D.layout = org.apache.log4j.PatternLayout 16 log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n 17 18 ### 输出ERROR 级别以上的日志到=E://logs/error.log ### 19 log4j.appender.E = org.apache.log4j.DailyRollingFileAppender 20 log4j.appender.E.File =d://logs/error.log 21 log4j.appender.E.Append = true 22 log4j.appender.E.Threshold = ERROR 23 log4j.appender.E.layout = org.apache.log4j.PatternLayout 24 log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
4、进入目录D:workgradleexe,cmd下键入指令:gradle assemble
5、进入目录D:workgradleexeuilddistributions,我们看到有了文件exe.zip 和exe.tar。这就是需要发布的文档了。
我们尝试把exe.zip解压看看,是不是有目录bin、lib。我们进入bin目录,使用cmd执行该exe.bat 是不是有了执行结果。
ok,到此我们就完成了所有的代码。
下面照例解释为啥这么写:
步骤1:build.gradle中第一行我们使用的不是java了,而变成了 application。这个插件干的活就是生成可执行的文档并打包。
在最后一行,我们使用 mainClassName 指定哪个类是可执行代码的入口类。
记住,这两个都是必须的,少了可是会报错的。
其他的部分和<项目自动化建构工具gradle 入门2——log4j输出helloWorld> 中的解释是一样的。
步骤2,3,4就不用解释了。