Skip to content

Commit

Permalink
(lib) migration: Maven to Gradle
Browse files Browse the repository at this point in the history
  • Loading branch information
jonathanlermitage committed Feb 18, 2018
1 parent a9884aa commit cf79b9c
Show file tree
Hide file tree
Showing 16 changed files with 386 additions and 922 deletions.
3 changes: 1 addition & 2 deletions .gitignore
@@ -1,8 +1,7 @@
private/
target/
out/
!.mvn/wrapper/maven-wrapper.jar
pom.xml.versionsBackup
build/

### MS Windows ###
Thumbs.db
Expand Down
Binary file removed .mvn/wrapper/maven-wrapper.jar
Binary file not shown.
1 change: 0 additions & 1 deletion .mvn/wrapper/maven-wrapper.properties

This file was deleted.

2 changes: 1 addition & 1 deletion .travis.yml
Expand Up @@ -3,4 +3,4 @@ language: java
jdk: oraclejdk9

before_install:
- chmod +x mvnw
- chmod +x gradlew
6 changes: 3 additions & 3 deletions appveyor.yml
Expand Up @@ -12,10 +12,10 @@ install:
- SET PATH=C:\Program Files\Java\jdk9\bin;%PATH%

build_script:
- mvnw clean package -DskipTests
- gradlew clean build -x test

test_script:
- mvnw test
- gradlew clean test jacocoTestReport -Pcoverage=true

cache:
- C:\Users\appveyor\.m2
- C:\Users\appveyor\.gradle
165 changes: 165 additions & 0 deletions build.gradle
@@ -0,0 +1,165 @@
buildscript {
repositories {
mavenCentral()
jcenter()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}
dependencies {
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.21'
classpath 'com.github.ksoichiro:gradle-build-info-plugin:0.2.0'
classpath 'com.github.ben-manes:gradle-versions-plugin:0.17.0'
}
}

plugins {
id 'java'
}

apply plugin: 'idea'
apply plugin: 'java'
apply plugin: 'com.github.ksoichiro.build.info'
apply plugin: 'com.github.ben-manes.versions'
idea {
module {
downloadJavadoc = true
downloadSources = true
}
}

repositories {
maven { url "https://repo.spring.io/milestone" }
maven { url "http://repo.maven.apache.org/maven2" }
jcenter()
}

group = 'nanon'
version = '1.0.0-SNAPSHOT'
description = "manon"
sourceCompatibility = JavaVersion.VERSION_1_9
targetCompatibility = JavaVersion.VERSION_1_9

dependencyUpdates.resolutionStrategy = {
//noinspection GroovyAssignabilityCheck
componentSelection { rules ->
rules.all { ComponentSelection selection ->
boolean rejected = ['alpha', 'Alpha', 'ALPHA', 'b', 'beta', 'Beta', 'BETA', /*'rc', '‌RC',*/ 'M', 'EA', 'pr', 'atlassian'].any { qualifier ->
selection.candidate.version ==~ /(?i).*[.-]${qualifier}[.\d-]*/
}
if (rejected) {
selection.reject('Release candidate')
}
}
}
}

configurations {
jar.archiveName = 'manon.jar'
}

test {
useTestNG()
workingDir = "./build/"
systemProperty 'spring.profiles.active', 'test,metrics'
systemProperty 'file.encoding', 'UTF-8'
systemProperty 'java.awt.headless', 'true'
testLogging.showStandardStreams = true
minHeapSize = "32m"
maxHeapSize = "256m"
jvmArgs "-XX:CompileThreshold=1500"
}

if (project.hasProperty('coverage') && project.getProperty('coverage') == 'true') {
apply from: 'gradle/coverage.gradle'
}

jar {
doFirst {
manifest {
if (!configurations.compile.isEmpty()) {
attributes(
'Main-Class': 'manon.Applicaton',
'Class-Path': configurations.runtimeClasspath.files.collect { 'lib/' + it.getName() }.join(' '),
'Built-By': System.getProperty('user.name'),
'Built-Date': new Date(),
'Built-JDK': System.getProperty('java.version')
)
}
}
}
}

task copyLibs(type: Copy) { from configurations.runtime into "$buildDir/libs/lib" }

task uberJar(dependsOn: [jar, copyLibs])

dependencies {

// spring boot
compile 'org.springframework.boot:spring-boot-starter-actuator:2.0.0.RC1'
compile 'org.springframework.boot:spring-boot-starter-batch:2.0.0.RC1'
compile 'org.springframework.boot:spring-boot-starter:2.0.0.RC1'
compile('org.springframework.boot:spring-boot-starter-web:2.0.0.RC1') {
exclude(module: 'spring-boot-starter-tomcat')
}
compile('org.springframework.boot:spring-boot-starter-web-services:2.0.0.RC1') {
exclude(module: 'spring-boot-starter-tomcat')
}
compile 'org.springframework.boot:spring-boot-starter-undertow:2.0.0.RC1'
compile 'org.springframework.boot:spring-boot-configuration-processor:2.0.0.RC1'

// spring
compile 'org.springframework:spring-beans:5.0.3.RELEASE'
compile 'org.springframework:spring-context:5.0.3.RELEASE'
compile 'org.springframework:spring-expression:5.0.3.RELEASE'
compile 'org.springframework:spring-web:5.0.3.RELEASE'
compile 'org.springframework.security:spring-security-core:5.0.1.RELEASE'
compile 'org.springframework.security:spring-security-config:5.0.1.RELEASE'
compile 'org.springframework.security:spring-security-web:5.0.1.RELEASE'
compile 'org.springframework.boot:spring-boot-starter-data-mongodb:2.0.0.RC1'

// db
compile 'org.mariadb.jdbc:mariadb-java-client:2.2.1'

// log
compile 'org.slf4j:slf4j-api:1.7.25'
compile 'ch.qos.logback:logback-classic:1.2.3'
compile 'org.jboss.logging:jboss-logging:3.3.2.Final'
compile 'org.codehaus.janino:janino:3.0.8'

// json
compile 'com.fasterxml.jackson.core:jackson-core:2.9.4'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.4'
compile 'com.fasterxml.jackson.core:jackson-databind:2.9.4'

// aop
compile 'org.aspectj:aspectjrt:1.9.0.RC3'
compile 'org.aspectj:aspectjweaver:1.9.0.RC3'

// misc
compile 'org.apache.commons:commons-lang3:3.7'

// test
testCompile('org.testng:testng:6.14.2') {
exclude(module: 'junit')
}
testCompile('org.springframework.boot:spring-boot-starter-test:2.0.0.RC1') {
exclude(module: 'junit')
}
testCompile('org.springframework.batch:spring-batch-test:4.0.0.RELEASE') {
exclude(module: 'junit')
}
testCompile 'org.jetbrains.kotlin:kotlin-stdlib:1.2.21'
testCompile 'com.fasterxml.jackson.module:jackson-module-kotlin:2.9.4.1'
testCompile 'io.rest-assured:rest-assured:3.0.7'
testCompile 'org.hamcrest:hamcrest-library:1.3'
testCompile 'org.assertj:assertj-core:3.9.0'
testCompile 'org.mockito:mockito-core:2.15.0'
testCompile 'org.hsqldb:hsqldb:2.4.0'
testCompile 'de.flapdoodle.embed:de.flapdoodle.embed.mongo:2.0.3'

// annotations
compile 'org.jetbrains:annotations:15.0'
compileOnly 'org.projectlombok:lombok:1.16.20'
testCompileOnly 'org.projectlombok:lombok:1.16.20'
}
34 changes: 16 additions & 18 deletions do.cmd
Expand Up @@ -13,38 +13,36 @@ if [%1] == [help] (
)

if [%1] == [t] (
echo mvnw clean test
mvnw clean test
echo gradlew clean test
gradlew clean test
)
if [%1] == [tc] (
echo mvnw clean test -Pcoverage
mvnw clean test -Pcoverage
echo gradlew clean test jacocoTestReport -Pcoverage=true
gradlew clean test jacocoTestReport -Pcoverage=true
)
if [%1] == [b] (
echo mvnw clean compile -DskipTests -T1
mvnw clean compile -DskipTests -T1
echo gradlew clean compileJava compileTestJava -x test
gradlew clean compileJava compileTestJava -x test
)
if [%1] == [c] (
echo mvnw clean
mvnw clean
echo gradlew clean
gradlew clean
)
if [%1] == [p] (
echo mvnw clean package -DskipTests -T1
mvnw clean package -DskipTests -T1
echo gradlew clean uberJar -x test
gradlew clean uberJar -x test
)
if [%1] == [w] (
echo mvn -N io.takari:maven:wrapper -Dmaven=%2
mvn -N io.takari:maven:wrapper -Dmaven=%2
echo gradle wrapper --gradle-version=%2
gradle wrapper --gradle-version=%2
)
if [%1] == [cv] (
echo mvnw versions:display-plugin-updates versions:display-dependency-updates -U
mvnw versions:display-plugin-updates versions:display-dependency-updates -U
echo gradlew dependencyUpdates -Drevision=release -DoutputFormatter=plain -DoutputDir=./build/
gradlew dependencyUpdates -Drevision=release -DoutputFormatter=plain -DoutputDir=./build/
)
if [%1] == [uv] (
echo mvnw versions:update-properties -U
mvnw versions:update-properties -U
echo TODO
)
if [%1] == [dt] (
echo mvnw dependency:tree
mvnw dependency:tree
echo TODO
)
22 changes: 22 additions & 0 deletions gradle/coverage.gradle
@@ -0,0 +1,22 @@
apply plugin: 'jacoco'

jacoco {
toolVersion = "0.8.0"
}

jacocoTestReport {
reports {
xml.enabled = false
csv.enabled = false
html.destination file("${buildDir}/jacocoHtml")
}
afterEvaluate {
classDirectories = files(classDirectories.files.collect {
fileTree(dir: it,
exclude: ['**/document/*',
'**/model/*',
'**/**Form.*',
'**/Application.*'])
})
}
}
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
5 changes: 5 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
distributionUrl=https\://services.gradle.org/distributions/gradle-4.5.1-bin.zip
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

0 comments on commit cf79b9c

Please sign in to comment.