gradle 基本构建配置

原创 2015年11月18日 19:16:19

参考:

http://blog.jobbole.com/84471/


自定义几个简单脚本

生成jar

build.gradle

apply plugin: 'java'
apply plugin: 'eclipse'


repositories {
    mavenCentral()
}

dependencies { 
   testCompile group: 'junit', name: 'junit', version: '4.+'
}

jar {
manifest {
attributes 'Main-Class': 'idet.rui.user.Hello'
}
}





package idet.rui.user;

public class Hello {

	public static void main(String[] args) {
		System.out.println("hello world");
		
		
	}

}

java -jar idet.jar  会输出


多项目

settings.gradle

include "app", "core","rui-test"

build.gradle

subprojects {
	apply plugin: 'java'
	apply plugin: 'eclipse'
    repositories {
         mavenCentral()
    }
}

allprojects {
    //Add configuration here
}


project(':rui-test') {
	dependencies{
		 compile 'junit:junit:4.11'
	}
}

project(':core') {
	dependencies{
		 testCompile project(':rui-test') 
	}
}

project(':app') {
	dependencies{
	    testCompile project(':rui-test') 
	    compile 'log4j:log4j:1.2.17'     	
	}
}


------------------------------------------------------------------

一个简单项目 gradle和jetty结合

项目github   https://github.com/liangrui1988/gradleSimpleDome

def SpringVersion = '4.0.1.RELEASE'
def JettyVersion = '8.1.14.v20131031'

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'war'


// gradle 自已用的
buildscript {
        repositories {
		     maven { url "http://10.12.0.110:8081/nexus/content/groups/public/" }
             mavenCentral()
        }
        dependencies {
            // classpath "net.saliman:gradle-cobertura-plugin:2.2.2"
        }
}

// JVM 版本号要求
sourceCompatibility = 1.7
targetCompatibility = 1.7  

repositories {
    maven { url "http://10.12.0.110:8081/nexus/content/groups/public/" }
    mavenCentral()
}


[compileJava, compileTestJava]*.options*.encoding = "UTF-8"


configurations {
     // 所有需要忽略的包定义在此
	all*.exclude group: 'commons-logging', module: 'commons-logging'
}
	
//最终的 Jar 包名,如果没设置,默认为 [baseName]-[appendix]-[version]-[classifier].[extension]
archivesBaseName = "gradle-test-6.6.6.jar"
	
dependencies { 
   testCompile group: 'junit', name: 'junit', version: '4.+'    
   compile 'org.slf4j:slf4j-api:1.7.5'
   compile 'org.slf4j:jcl-over-slf4j:1.7.5'
   compile 'ch.qos.logback:logback-classic:1.0.13'
   compile 'org.apache.commons:commons-lang3:3.1'
   compile 'org.apache.httpcomponents:httpclient:4.3.4'
   compile 'org.apache.httpcomponents:httpmime:4.3.4'
   compile "org.eclipse.jetty:jetty-jsp:${JettyVersion}"
   compile "org.eclipse.jetty:jetty-webapp:${JettyVersion}"
   compile "org.eclipse.jetty:jetty-servlet:${JettyVersion}"
	compile "javax.servlet:javax.servlet-api:3.1.0"
	compile "javax.servlet.jsp:jsp-api:2.2.1-b03"
	compile "javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1" 
}

//Java 插件已经向项目添加了 compileJava任务和processResources任务,并且配置了这两个任务的destinationDir属性
// 更改插件的默认设置
processResources << {
        file("$destinationDir/version.properties").text = 'version=' + project.version
    }

task copyLib(type: Sync, dependsOn: jar) {
		from jar.archivePath
		from configurations.compile
		into 'build/deploy'
	}
	
	task copyWebapp(type: Sync) {
		from 'src/main/webapp'
		into 'build/deploy/webapp'
	}
	
//task deploy(type: Sync, dependsOn: jar) 
task deploy(dependsOn: [copyLib,copyWebapp])



 // 显示当前项目下所有用于 compile 的 jar.
task listJars(description: 'Display all compile jars.') << {
    configurations.compile.each { File file -> println file.name }
}





package idet.rui.user;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.nio.SelectChannelConnector;
import org.eclipse.jetty.util.thread.ExecutorThreadPool;
import org.eclipse.jetty.webapp.WebAppContext;

public class SimpleMain {

	public static void main(String[] args) throws Exception {
		Server server = new Server();
		SelectChannelConnector connector = new SelectChannelConnector();

		// 设置线程
		server.setThreadPool(new ExecutorThreadPool());
		// 端口
		connector.setPort(9808);
		// 设置handler
		//项目目录名/src/main/webapp
		//lib/webapp
		server.setHandler(new WebAppContext("src/main/webapp", "/"));
		// 连接器
		server.addConnector(connector);
		server.start();
	}
}


访问页面成功


linux 上可以用sh 启动脚本

run.sh

#!/bin/bash
PATH_LIB=./lib
CLASSPATH=../etc

for jar in `ls $PATH_LIB/*.jar`
do
      CLASSPATH="$CLASSPATH:""$jar"
done

#        ARGS="$ARGS"" -Djava.rmi.server.hostname="
#        ARGS="$ARGS"" -Dcom.sun.management.jmxremote.port=8990"
#        ARGS="$ARGS"" -Dcom.sun.management.jmxremote.authenticate=false" 
#        ARGS="$ARGS"" -Dcom.sun.management.jmxremote.ssl=false" 
#        ARGS="$ARGS"" -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8004" 

exec -a 项目目录 java -server -Xms64m -Xmx64m -XX:PermSize=16m -XX:MaxPermSize=128m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:/srv/server/pro-web/work/gc.log $ARGS -classpath "$CLASSPATH" xx.xx.xx.WebMain 9809 >> work/stdout.log


在结合supervisor 管理启动脚本


不错的文档参考

http://my.oschina.net/zjzhai/blog/220028?fromerr=pFWeJprg

http://www.tuicool.com/articles/ZBJBjej

https://docs.gradle.org/current/dsl/org.gradle.api.initialization.Settings.html


task >>>>>>有时间补上


gradle的war插件

war可以开发的应用打包成部署包.最常的打包方法: a.将开发的源目录src/main/java的文件打包成一个jar包,然后放入WEB-INF/lib目录下面. b.不要将配置文件打包到jar里...

Gradle (一) 在已有的web工程中使用gradle打war包

gradle官网下载最新的压缩包,解压后设置环境变量 GRADLE_HOME 为解压目录,在path前加入 %GRADLE_HOME%\lib; 打开cmd 运行 gradle -v 查看版本 当...
  • nohero1
  • nohero1
  • 2016年06月23日 17:16
  • 10622

12 gradle 之war 和jetty 插件的使用

这一章介绍Gradle对网络应用的支持。Gradle为网络应用开发提供了2个插件:War和Jetty。War继承自Java,为你的项目构建一个War文件。Jetty继承自War,允许你部署你的网络应用...

gradle指定java主类

先贴出build.gradleapply plugin: 'java' sourceCompatibility = 1.8 jar { manifest { attribute...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

gradle的jetty插件

很遗憾,当前gradle2.0内置的jetty插件只支持jetty 6.1.25版本,并且近期没有计划改变jetty插件(http://forums.gradle.org/gradle/topics/...
  • xiejx618
  • xiejx618
  • 2014年07月30日 21:29
  • 13215

idea + gradle + jetty 进行debug 设置

idea + gradle + jetty 进行debug 设置

Gradle里配置Jetty实现静态资源的热部署

通过Gradle我们可以很方便的使用内置jetty启动我们的web程序,在本地进行调试。但是在使用的过程中,我发现了几个问题,导致本地调试的效率大受影响。 如果使用gradle jettyRun启...

gradle + Jetty + docker 实现Java自动化打包

从去年开始,构建工具就从maven转向gradle了,servlet容器也从tomcat转向了jetty,直接使用内嵌的方式运行,然后用gradle打包成应用程序,直接启动bin目录下的运行文件即可运...

二.配置简单的嵌入式jetty

修改类文件,类加载器就能重新加载修改过的类,测试就方便了,在开发web应用的时候,这样做似乎不是件容易事.tomcat maven组件会把应用打成war包,再上传到tomcat,重新部署再测试,虽然看...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:gradle 基本构建配置
举报原因:
原因补充:

(最多只允许输入30个字)