Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Organize Misq with multi-project Gradle build system #1

Merged
merged 10 commits into from
Jun 5, 2021
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# GITHUB JAVA DEFAULTS

# Compiled class file
*.class

Expand All @@ -11,7 +13,6 @@
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
Expand All @@ -21,3 +22,18 @@

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

# MISQ

.idea
!.idea/copyright/bisq_Affero_GPLv3.xml
!.idea/copyright/profiles_settings.xml
!.idea/codeStyleSettings.xml
*.iml
*.spvchain
*.wallet
*.ser
.DS_Store
.gradle
build

18 changes: 18 additions & 0 deletions api/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
plugins {
id 'java-library'
}

repositories {
mavenCentral()
}

apply from: '../buildSrc/misq-version.gradle'
apply from: '../buildSrc/logging-dependencies.gradle'
apply from: '../buildSrc/test-dependencies.gradle'

dependencies {
}

test {
useJUnitPlatform()
}
39 changes: 39 additions & 0 deletions application/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
plugins {
id 'java-library'
id 'application'
id 'distribution'
}

repositories {
mavenCentral()
}

apply from: '../buildSrc/misq-version.gradle'

application {
project.mainClassName = 'network.misq.application.ApplicationMain'
}

distributions {
main {
distributionBaseName = 'app-dist'
}
}

apply from: '../buildSrc/logging-dependencies.gradle'
apply from: '../buildSrc/test-dependencies.gradle'

dependencies {
}

tasks.named('jar') {
manifest {
attributes('Implementation-Title': project.name,
'Implementation-Version': project.version,
'Main-Class': 'network.misq.application.ApplicationMain')
}
}

test {
useJUnitPlatform()
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package network.misq.application;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


public class ApplicationMain {
private static final Logger log = LoggerFactory.getLogger(ApplicationMain.class);

public static void main(String[] args) {
log.info("ApplicationMain");
}
}
13 changes: 13 additions & 0 deletions application/src/main/resources/logback.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>

<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
18 changes: 18 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
plugins {
id 'java'
}

group 'network.misq'

repositories {
mavenCentral()
}

apply from: 'buildSrc/misq-version.gradle'

dependencies {
}

test {
useJUnitPlatform()
}
56 changes: 56 additions & 0 deletions buildSrc/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
plugins {
id 'com.google.protobuf' version '0.8.16'
id 'signing'
id 'maven-publish'
}

repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}

apply from: 'misq-version.gradle'

ext {
createTestReports = false
}

configurations.all {
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}

java {
modularity.inferModulePath = false
withJavadocJar()
withSourcesJar()
}

tasks.named('compileJava') {
sourceCompatibility = 16
targetCompatibility = 16
modularity.inferModulePath = false
options.compilerArgs += ['-Xdoclint:none', '-Xlint:none', '-nowarn']
}

jar {
// Exclude .proto files from generated jars.
exclude '*.proto'
includeEmptyDirs false
}

tasks.withType(Test).configureEach {
maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
if (!project.hasProperty("createTestReports")) {
reports.html.enabled = false
reports.junitXml.enabled = false
}
}

tasks.named("javadoc") {
source = sourceSets.main.allJava
options.addStringOption('Xdoclint:none', '-quiet')
}

tasks.named("test") {
useJUnitPlatform()
}
18 changes: 18 additions & 0 deletions buildSrc/gen-protos.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Shared protobuf generations task.
// Usage: add one line to (sub) project build.gradle file:
// apply from: '../buildSrc/gen-protos.gradle'
ext {
// Default generated src dirs.
generatedGrpcProtoSrcDir = 'build/generated/source/main/grpc'
generatedProtoSrcDir = 'build/generated/source/main/java'
}

sourceSets.main {
java.srcDirs += [generatedProtoSrcDir]
}

protobuf {
protoc { artifact = 'com.google.protobuf:protoc:3.12.4' }
generateProtoTasks { all() }
generatedFilesBaseDir = "$projectDir/build/generated/source"
}
6 changes: 6 additions & 0 deletions buildSrc/logging-dependencies.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
dependencies {
api platform(project(':platforms:common-platform'))
implementation 'org.slf4j:slf4j-api'
implementation 'ch.qos.logback:logback-core'
implementation 'ch.qos.logback:logback-classic'
}
1 change: 1 addition & 0 deletions buildSrc/misq-version.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
version '0.0.1-SNAPSHOT'
5 changes: 5 additions & 0 deletions buildSrc/test-dependencies.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
dependencies {
api platform(project(':platforms:test-platform'))
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
}
25 changes: 25 additions & 0 deletions cli/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
plugins {
id 'java-library'
id 'com.google.protobuf' version '0.8.16'
}

repositories {
mavenCentral()
}

apply from: '../buildSrc/misq-version.gradle'
apply from: '../buildSrc/logging-dependencies.gradle'
apply from: '../buildSrc/test-dependencies.gradle'

dependencies {
api platform(project(':platforms:grpc-platform'))

implementation 'com.google.protobuf:protobuf-java'
implementation 'io.grpc:grpc-core'
implementation 'io.grpc:grpc-stub'
implementation 'io.grpc:grpc-netty-shaded'
}

test {
useJUnitPlatform()
}
9 changes: 9 additions & 0 deletions cli/src/main/java/network/misq/cli/CliMain.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package network.misq.cli;

import static java.lang.System.out;

public class CliMain {
public static void main(String[] args) {
out.println("CliMain");
}
}
18 changes: 18 additions & 0 deletions common/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
plugins {
id 'java-library'
}

repositories {
mavenCentral()
}

apply from: '../buildSrc/misq-version.gradle'
apply from: '../buildSrc/logging-dependencies.gradle'
apply from: '../buildSrc/test-dependencies.gradle'

dependencies {
}

test {
useJUnitPlatform()
}
1 change: 1 addition & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
org.gradle.parallel=true
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
6 changes: 6 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=13bf8d3cf8eeeb5770d19741a59bde9bd966dd78d17f1bbad787a05ef19d1c2d
ghubstan marked this conversation as resolved.
Show resolved Hide resolved
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading