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等 ...
随机推荐
- spring核心包功能解析
- 五、Web框架基础(2)
Tornado 异步协程编程.(其实是异步IO而非真正的异步,从内核拷贝到用户空间的过程还是同步的) 适合用户量大.高并发,如抢票.网页游戏.在线聊天等场景:或大量HTTP持久连接,通过单TCP持久连 ...
- 【TensorFlow-windows】(五) CNN(卷积神经网络)对cifar10的识别
主要内容: 1.基于CNN的cifar10识别(详细代码注释) 2.该实现中的函数总结 平台: 1.windows 10 64位 2.Anaconda3-4.2.0-Windows-x86_64.ex ...
- LeetCode(155)题解--Min Stack
https://leetcode.com/problems/min-stack/ 题目: Design a stack that supports push, pop, top, and retrie ...
- 安装Ubuntn 和 pycharm
Ubuntu安装之python开发 什么??公司要用Ubuntu(乌班图)?不会用??怎么进行python开发??? 乌班图操作系统下载地址:http://releases.ubuntu.com/ ...
- SAM4E单片机之旅——3、LED闪烁之定时器中断
让一个LED灯闪烁不过瘾,我们应该让这块开发板完成一点更高难度的任务:比如让两个LED灯闪烁. …… 当然了,以我们的现在使用的空循环技术,还是可以实现这点的.但是这样显得略为低端.所以我们使用一个高 ...
- 为自己编写的windows应用程序制作安装包
1 写好了一个windows程序之后如何制作安装包 这个在vs中就可以直接发布了,可以制作msi的安装包和exe的安装包. 2 window应用程序安装包做了哪些事情 rpm安装包的话,只是把相应的文 ...
- Node 文件上传,ZIP
上传文件: 很多人会使用第三包进行文件的上传,例如formidable. 我也研究过,可是与Express3.x框架一起使用时,发现上传的文件总是找不到.结果原因是下面这句导致: app.use(ex ...
- 在win7系统下安装把Ubuntu17.04安装在另一个硬盘开机无法进入Ubuntu问题的一种解决办法。【转】
本文转载自:http://blog.csdn.net/u012879090/article/details/74937762 在win7系统下安装把Ubuntu17.04安装在另一个硬盘开机无法进入U ...
- Zygote进程介绍【转】
本文转载自:http://blog.csdn.net/yangwen123/article/details/17258023 Zygote进程介绍 在Android系统中,存在不同的服务,这些服务 ...