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.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
18 changes: 17 additions & 1 deletion .gitignore
@@ -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
@@ -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
@@ -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()
}
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -0,0 +1 @@
version '0.0.1-SNAPSHOT'
5 changes: 5 additions & 0 deletions buildSrc/test-dependencies.gradle
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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