fitnesse(gradle构建)安装步骤
1.安装jdk、ant、gradle(参考http://www.cnblogs.com/274914765qq/p/4401525.html)
2.下载Fitnesse
https://github.com/unclebob/fitnesse/
3.下载完成后,解压,并双击gradlew.bat,然后等待完成(时间较长)。
4.完成后,通过命令行进入fitnesse-master并使用下面的命令运行(会下载很多包,时间较长):
.\gradlew run
5.eclipse 安装gradle插件
参考:http://blog.csdn.net/buqutianya/article/details/50226721
6.将Fitnesse导入eclipse
a. File -> Import... -> Gradle Project
b. 选择fitnesse-master目录,确认后导入
7 例子
参考 http://www.cnblogs.com/moonpool/p/5547549.html
上面的例子中是使用ant工具构建的,现在新的fitnesse是使用gradle工具构建,所以在使用第三方的jar包时有些变化。
修改build.gradle文件
/* Plan:
- Create multi-module repo:
- fit (deps: common)
- slim (deps: common, networking)
- common
- networking
- ant
- fitnesse, the wiki server
- Move file creation to plugin
*/ buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'info.solidsoft.gradle.pitest:gradle-pitest-plugin:1.1.9'
}
} plugins {
id 'java'
id "maven-publish"
id "com.jfrog.bintray" version "1.6"
} apply plugin: "info.solidsoft.pitest" version = new Date().format('yyyyMMdd') println "Building FitNesse v${project.version}..." repositories {
mavenCentral()
} configurations {
lesscss
optional
compile {
transitive = false
extendsFrom optional
}
runtime {
transitive = false
}
} sourceSets {
main {
java.srcDir 'src'
resources.srcDir 'src'
output.resourcesDir output.classesDir
}
test {
java.srcDir 'test'
}
} sourceCompatibility = '1.7'
targetCompatibility = '1.7' dependencies {
compile "org.htmlparser:htmlparser:2.1"
compile "org.htmlparser:htmllexer:2.1"
compile "org.apache.velocity:velocity:1.7"
compile "commons-lang:commons-lang:2.6"
compile "commons-collections:commons-collections:3.2.2"
compile "org.json:json:20151123"
compile "com.googlecode.java-diff-utils:diffutils:1.3.0"
optional "org.apache.ant:ant:1.9.6"
optional "junit:junit:4.12" testCompile "junit:junit:4.12"
testCompile "org.mockito:mockito-core:1.10.19"
testCompile "org.hamcrest:hamcrest-all:1.3"
testCompile "net.javacrumbs.json-unit:json-unit:1.1.6" compileOnly files('lib/joda-time-2.3.jar') lesscss "org.mozilla:rhino:1.7.7.1"
} task fitNesseVersion {
def versionFile = new File("${sourceSets.main.output.resourcesDir}/META-INF/FitNesseVersion.txt")
versionFile.parentFile.mkdirs()
versionFile.text="v${version}"
} task compileBootstrap(type: LessCompiler) {
inputDir file('src/fitnesse/resources/bootstrap/less')
mainLessFile = 'fitnesse-bootstrap.less'
cssFile file("${sourceSets.main.output.resourcesDir}/fitnesse/resources/bootstrap/css/fitnesse-bootstrap.css")
classpath configurations.lesscss
} task createUpdateLists(type: WikiFileListBuilderTask) {
outputDirectory = "${sourceSets.main.output.resourcesDir}/Resources"
doNotReplaceFiles = [
"FitNesseRoot/FrontPage/content.txt",
"FitNesseRoot/FrontPage/properties.xml",
"FitNesseRoot/PageHeader/content.txt",
"FitNesseRoot/PageHeader/properties.xml",
"FitNesseRoot/PageFooter/content.txt",
"FitNesseRoot/PageFooter/properties.xml",
"FitNesseRoot/PageFooter/properties.xml",
"FitNesseRoot/TemplateLibrary/content.txt",
"FitNesseRoot/TemplateLibrary/properties.xml",
"FitNesseRoot/TemplateLibrary/StaticPage/content.txt",
"FitNesseRoot/TemplateLibrary/StaticPage/properties.xml",
"FitNesseRoot/TemplateLibrary/SuitePage/content.txt",
"FitNesseRoot/TemplateLibrary/SuitePage/properties.xml",
"FitNesseRoot/TemplateLibrary/TestPage/content.txt",
"FitNesseRoot/TemplateLibrary/TestPage/properties.xml" ]
mainDirectories = [
"FitNesseRoot/FitNesse",
"FitNesseRoot/FrontPage",
"FitNesseRoot/PageFooter",
"FitNesseRoot/PageHeader",
"FitNesseRoot/TemplateLibrary" ]
} processResources.dependsOn "fitNesseVersion", "compileBootstrap", "createUpdateLists" task copyRuntimeLibs(type: Copy) {
into "lib"
from configurations.runtime
} test {
dependsOn copyRuntimeLibs
maxParallelForks 1
} pitest {
targetClasses = ['fit.*', 'fitnesse.*']
pitestVersion = "1.1.10"
threads = 1 // We can not deal with parallel execution yet
outputFormats = ['XML', 'HTML']
} task run(type: JavaExec) {
dependsOn classes, copyRuntimeLibs
classpath = sourceSets.main.runtimeClasspath
main "fitnesseMain.FitNesseMain"
args "-p", "8001", "-e", "0"
} jar {
dependsOn createUpdateLists
into('Resources') {
from('.') {
include 'FitNesseRoot/FitNesse/**/content.txt'
include 'FitNesseRoot/FitNesse/**/properties.xml'
include 'FitNesseRoot/FrontPage/**/content.txt'
include 'FitNesseRoot/FrontPage/**/properties.xml'
include 'FitNesseRoot/PageFooter/**/content.txt'
include 'FitNesseRoot/PageFooter/**/properties.xml'
include 'FitNesseRoot/PageHeader/**/content.txt'
include 'FitNesseRoot/PageHeader/**/properties.xml'
include 'FitNesseRoot/TemplateLibrary/**/content.txt'
include 'FitNesseRoot/TemplateLibrary/**/properties.xml'
}
}
manifest {
attributes("Main-Class": "fitnesseMain.FitNesseMain",
"Implementation-Version": version)
}
} task standaloneJar(type: Jar, dependsOn: jar) {
baseName = 'fitnesse'
classifier = 'standalone'
from {
(configurations.compile - configurations.optional).collect { zipTree(it) }
} {
exclude 'META-INF/**'
}
from jar.outputs.files.collect {
zipTree(it)
}
manifest {
attributes("Main-Class": "fitnesseMain.FitNesseMain",
"Implementation-Version": version)
}
} task acceptanceTest(type: JavaExec) {
mustRunAfter test
onlyIf { dependsOnTaskDidWork() }
classpath = standaloneJar.outputs.files
main "fitnesseMain.FitNesseMain"
args "-o", "-c", "FitNesse.SuiteAcceptanceTests?suite&format=text"
} check.dependsOn acceptanceTest task javadocJar(type: Jar) {
mustRunAfter check
classifier = 'javadoc'
from javadoc
} task sourcesJar(type: Jar) {
mustRunAfter check
classifier = 'sources'
from sourceSets.main.allSource
} clean{
delete "lib"
} publishing {
publications {
FitNesseRelease(MavenPublication) {
from components.java
artifact sourcesJar
artifact javadocJar
artifact standaloneJar
groupId 'org.fitnesse'
artifactId 'fitnesse'
pom.withXml {
asNode().get('version') + { url('http://fitnesse.org') }
asNode().appendNode('description', 'The fully integrated standalone wiki, and acceptance testing framework.')
asNode().append(pomLicenses())
asNode().append(pomScm())
asNode().append(pomDevelopers()) // Clean up scope entries added by the pom generator:
asNode().dependencies.'*'.findAll() {
if (it.scope.text() == 'runtime') {
it.remove(it.scope)
}
}
}
}
}
} bintray {
user = System.getenv("BINTRAY_USER") ?: 'Define your Bintray user name in BINTRAY_USER'
key = System.getenv("BINTRAY_API_KEY") ?: 'Define your Bintray BINTRAY_API_KEY'
publications = ['FitNesseRelease']
publish = true
pkg {
repo = System.getenv("BINTRAY_API_KEY") ?: 'edge'
name = 'fitnesse'
userOrg = 'fitnesse'
licenses = ['CPL-1.0']
websiteUrl = 'http://fitnesse.org'
vcsUrl = 'https://github.com/unclebob/fitnesse.git'
publicDownloadNumbers = true
githubRepo = 'unclebob/fitnesse'
version {
name = project.version
desc = "FitNesse release ${project.version}"
vcsTag = project.version
gpg {
sign = true
}
}
}
} wrapper {
gradleVersion = '2.13'
} def pomLicenses() {
new NodeBuilder().licenses {
license {
name 'Common Public License version 1.0'
url 'http://www.opensource.org/licenses/cpl1.0'
distribution 'repo'
}
}
} def pomScm() {
new NodeBuilder().scm {
connection 'scm:git:git://github.com/unclebob/fitnesse.git'
developerConnection 'scm:git:git@github.com:unclebob/fitnesse.git'
url 'scm:git:http://github.com/unclebob/fitnesse'
}
} def pomDevelopers() {
new NodeBuilder().developers {
developer {
id 'unclebob'
name 'Robert C. Martin'
email 'unclebob@cleancoder.com'
}
}
}
上面代码中compileOnly files('lib/joda-time-2.3.jar')就是加入第三方jar的方法。
fitnesse(gradle构建)安装步骤的更多相关文章
- Gradle安装步骤
一. Gralde介绍 Gradle是基于Groovy语言的项目自动化建构工具,在使用Gradle之前常用的构建工具有Ant和Maven,使用这些工具我们可以用来管理项目依赖,打包,部署和发布等.使用 ...
- 使用Gradle构建构建一个Java Web工程及持续集成环境Jenkins配置
安装Eclipse插件——Buildship 什么是Buildship? Buildship能方便我们通过Eclipse IDE创建和导入Gradle工程,同时还能执行Gradle任务. Eclips ...
- [转]-用Gradle 构建你的android程序
出处:http://www.cnblogs.com/youxilua 前言 android gradle 的插件终于把混淆代码的task集成进去了,加上最近,android studio 用的是gr ...
- 用Gradle 构建android程序
前言 android gradle 的插件终于把混淆代码的task集成进去了,加上最近,android studio 用的是gradle 来构建项目, 下定决心把android gralde 构建项目 ...
- 在Eclipse IDE使用Gradle构建应用程序
文 by / 林本托 Tips 做一个终身学习的人. 1. 下载和配置Gradle Gradle Inc.是Gradle框架开发的公司,为Eclipse IDE提供了Gradle工具的支持. 此工具可 ...
- 使用 Gradle 构建 Java 项目
使用 Gradle 构建 Java 项目 这个手册将通过一个简单的 Java 项目向大家介绍如何使用 Gradle 构建 Java 项目. 我们将要做什么? 我们将在这篇文档航中创建一个简单的 Jav ...
- gradle 的安装
前言: 我不是一个勤奋好学的人,奔着新技术就跑去尝试学习.但是在工作或者学习的过程中,遇到了的技术,还是得一个坎一个坎的迈过去.把今天遇到的坎变成明天的垫脚石. 想学习一下 spring 的源码,然后 ...
- [Gradle] Gradle 构建工具的未来
转载地址:http://www.infoq.com/cn/news/2011/04/xxb-maven-6-gradle Maven面临的挑战 软件行业新旧交替的速度之快往往令人咂舌,不用多少时间,你 ...
- 用Gradle 构建你的android程序
前言 android gradle 的插件终于把混淆代码的task集成进去了,加上最近,android studio 用的是gradle 来构建项目, 下定决心把android gralde 构建项目 ...
- 使用gradle构建Android时 版本号versionName中嵌入git提交信息
为什么要这么做 在应用开发的版本迭代过程中,通过版本号并不能快速定位到所对应的代码,导致在后面分析问题追溯对应版本的代码时比较麻烦. 如果代码是通过git来管理的,git的commit id等 ...
随机推荐
- ANDROID STUDIO 2.2.3 DOWNLOAD FROM DL.GOOGLE.COM
立即开始使用 Android Studio Android Studio 包含用于构建 Android 应用所需的所有工具. 下载 ANDROID STUDIO2.2.3 FOR WINDOWS (1 ...
- 针对基于Phison(群联)U盘的BadUSB攻击
修改U盘固件使之在插入电脑时能执行键盘指令.原文和源码在此,粗略翻译了一下.https://github.com/adamcaudill/Psychson 其实还有类似的成品卖,叫做USB Rubbe ...
- C语言预处理条件语句的 与或运算
1.#ifdef 与或运算 #ifdef (MIN) && (MAX) ----------------------------错误使用 #if defined(MIN) & ...
- php源码zend_do_begin_namespace函数详解
version:5.6.21 file:Zend/zend_compile.c line:7055-7152 void zend_do_begin_namespace(const znode *nam ...
- 常用PHP MySQL函数
配置选项 MySQL 函数的行为受到 php.ini 中设置的影响. mysql.allow_persistent "1" 是否允许 MySQL 的持久连接. mysql.max_ ...
- 模式识别之ocr项目---(模板匹配&BP神经网络训练)
摘 要 在MATLAB环境下利用USB摄像头采集字符图像,读取一帧保存为图像,然后对读取保存的字符图像,灰度化,二值化,在此基础上做倾斜矫正,对矫正的图像进行滤波平滑处理,然后对字符区域进行提取分割出 ...
- duplicate symbols for architeture arm64 linker command failed with code 1(use-c to see invocation)
duplicate symbols for architeture arm64 linker command failed with code 1(use-c to see invocation) ...
- Spring 实战 学习笔记(1)
Spring的核心 依赖注入 & 切面编程 1.创建应用组件之间协作的行为通常称为装配.(wiring) 2.Spring EL表达式.SEL是一种能在运行时构建复杂表达式,存取对象属性.对象 ...
- Redis学习笔记(1):Redis的说明与安装
Redis学习笔记(1):Redis说明的安装 说明 什么是Redis REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-va ...
- HTTP1.1学习笔记 -- RFC2616
本人跟web无缘,从来没有想去学http,现在看来,学学也是有益无害,总会要用着点滴. RFC见这里: https://www.ietf.org/rfc/rfc2616.txt 0. URI格式 ht ...