Skip to content

Commit

Permalink
ejected files / new Readme
Browse files Browse the repository at this point in the history
  • Loading branch information
jjohannes committed Jan 30, 2024
1 parent 07d8b6b commit 66ae55b
Show file tree
Hide file tree
Showing 57 changed files with 437 additions and 86 deletions.
File renamed without changes.
2 changes: 1 addition & 1 deletion .oj/jdk-version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
17.0.6
17.0.6
5 changes: 3 additions & 2 deletions .oj/modules.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# https://onepiece.software/j/modules
# https://onepiece.software/j/#modules

# jakarta.activation=com.sun.activation:jakarta.activation
jakarta.activation=com.sun.activation:jakarta.activation
jakarta.mail=com.sun.mail:jakarta.mail
7 changes: 3 additions & 4 deletions .oj/patch/boms.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# https://onepiece.software/j/patch/boms
# https://onepiece.software/j#boms.properties

# org.openjfx\:javafx=javafx-base,javafx-graphics,javafx-controls,javafx-fxml,javafx-media,javafx-swing,javafx-web%
org.apache.poi\:poi=org.apache.poi:poi-excelant,org.apache.poi:poi-ooxml,org.apache.poi:poi-scratchpad
org.slf4j\:slf4j-parent=org.slf4j:slf4j-api,org.slf4j:slf4j-simple,org.slf4j:slf4j-nop,org.slf4j:slf4j-jdk14,org.slf4j:slf4j-log4j12,org.slf4j:slf4j-reload4j,org.slf4j:slf4j-jcl,org.slf4j:slf4j-android,org.slf4j:slf4j-ext,org.slf4j:jcl-over-slf4j,org.slf4j:log4j-over-slf4j,org.slf4j:jul-to-slf4j,org.slf4j:osgi-over-slf4j
org.apache.poi=poi,poi-excelant,poi-ooxml,poi-scratchpad
org.slf4j=slf4j-api,slf4j-simple,slf4j-nop,slf4j-jdk14,slf4j-log4j12,slf4j-reload4j,slf4j-jcl,slf4j-android,slf4j-ext,jcl-over-slf4j,log4j-over-slf4j,jul-to-slf4j,osgi-over-slf4j
4 changes: 2 additions & 2 deletions .oj/patch/conflicts.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# https://onepiece.software/j/patch/conflicts
# https://onepiece.software/j/#conflicts.properties

# com.sun.activation\:jakarta.activation=jakarta.activation:jakarta.activation-api,com.sun.activation:jakarta.activation
com.sun.activation\:jakarta.activation=jakarta.activation:jakarta.activation-api,com.sun.activation:jakarta.activation
4 changes: 2 additions & 2 deletions .oj/patch/dependencies-add.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# https://onepiece.software/j/patch/dependencies-add
# https://onepiece.software/j/#dependencies.add.properties

# io.netty\:netty-common=io.projectreactor.tools:blockhound:1.0.8.RELEASE
io.netty\:netty-common=io.projectreactor.tools:blockhound:1.0.8.RELEASE
4 changes: 2 additions & 2 deletions .oj/patch/features.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# https://onepiece.software/j/patch/features
# https://onepiece.software/j/#features.properties

# io.netty\:netty-transport-native-epoll=linux-x86_64,linux-aarch_64
io.netty\:netty-transport-native-epoll=linux-x86_64,linux-aarch_64
9 changes: 4 additions & 5 deletions .oj/patch/non-modules.properties
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
# https://onepiece.software/j/patch/non-modules

# com.google.common=com.google.guava:guava
org.apache.commons.collections4=org.apache.commons:commons-collections4
org.apache.commons.codec=commons-codec:commons-codec
commons.math3=org.apache.commons:commons-math3
SparseBitSet=com.zaxxer:SparseBitSet
com.github.virtuald.curvesapi=com.github.virtuald:curvesapi
com.google.common=com.google.guava:guava
commons.math3=org.apache.commons:commons-math3
javax.annotations.jsr305=com.google.code.findbugs:jsr305
org.apache.commons.codec=commons-codec:commons-codec
org.apache.commons.collections4=org.apache.commons:commons-collections4
org.apache.commons.lang3=org.apache.commons:commons-lang3
velocity.engine.core=org.apache.velocity:velocity-engine-core
org.apache.commons.lang3=org.apache.commons:commons-lang3
4 changes: 2 additions & 2 deletions .oj/patch/targets.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# https://onepiece.software/j/patch/targets
# https://onepiece.software/j/#targets.properties

# org.openjfx\:javafx-base=[none|none],mac[macos|x86-64],mac-aarch64[macos|aarch64],win[windows|x86-64],linux-aarch64[linux|x86-64]
org.openjfx\:javafx-base=[none|none],mac[macos|x86-64],mac-aarch64[macos|aarch64],win[windows|x86-64],linux-aarch64[linux|x86-64]
2 changes: 1 addition & 1 deletion .oj/product.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

name=Gradle Project Setup HowTo
version=1.0
domain=example.org
domain=product.example.org
modules=
targets=macos[macos|x86-64],ubuntu[linux|x86-64],windows[windows|x86-64]
classpath=false
Expand Down
2 changes: 1 addition & 1 deletion .oj/publishing.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# https://onepiece.software/j/publishing

# example=https://example.org/publishing-repository
local=/tmp/my-repo
3 changes: 2 additions & 1 deletion .oj/repositories.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# https://onepiece.software/j/repositories
# https://onepiece.software/j/#repositories.properties

mavenCentral=https://repo1.maven.org/maven2
foojayJavaToolchains=https://api.foojay.io/disco
2 changes: 1 addition & 1 deletion .oj/tweak/endToEndTest.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ test.lifecycle=checkEndToEnd
javac.jvm.options=
javac.options=
test.jvm.options=
test.parallelism=8
test.parallelism=0
2 changes: 1 addition & 1 deletion .oj/tweak/test.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
test.lifecycle=check
javac.jvm.options=
javac.options=
test.jvm.options=
test.jvm.options=-Xmx1g
test.parallelism=8
4 changes: 2 additions & 2 deletions .oj/versions.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# https://onepiece.software/j/versions

com.fasterxml.jackson.core=2.16.1
com.fasterxml.jackson.databind=2.16.1
com.google.common=33.0.0-jre
jakarta.activation=1.2.2
jakarta.mail=1.6.7
Expand All @@ -9,7 +9,7 @@ java.inject=1.0.5
javax.annotations.jsr305=3.0.2
org.apache.commons.compress=1.25.0
org.apache.commons.io=2.15.1
org.apache.poi.ooxml=5.2.2
org.apache.poi.poi=5.2.2
org.assertj.core=3.25.1
org.junit.jupiter.api=5.10.1
org.slf4j=2.0.10
Expand Down
65 changes: 39 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,38 +32,51 @@ Different structuring concerns are summarized in commits if you like to explore

### Any kind of project

- [Folder structure](https://github.com/jjohannes/gradle-project-setup-howto/commit/folder-structure)
- Folder structure
A basic structure with all the places to put build configuration.
Puts everything, which is not a dependency declaration of a concrete subproject, into the `gradle/` folder.
(Which is a choice, you can put things in different places and still follow the rest of this setup.)
- [Settings plugin](https://github.com/jjohannes/gradle-project-setup-howto/commit/settings-plugin)
A settings convention plugin to configure the project structure, repositories, and build locations.
Uses [org.gradlex:build-parameters](https://github.com/gradlex-org/build-parameters) to pass environment variables into the build.
- [Settings plugin](gradle/plugins/src/main/kotlin/org.example.gradlebuild.settings.settings.gradle.kts)
A settings convention plugin to configure the project structure, repositories, [remote cache node](https://docs.gradle.com/build-cache-node/) and Devlocity server (https://gradle.com/develocity).
- [Video: The Settings File](https://www.youtube.com/watch?v=Ajs8pTbg8as&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Video: Settings Plugins](https://www.youtube.com/watch?v=tlx3tzuLSWk&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Dependency rules](https://github.com/jjohannes/gradle-project-setup-howto/commit/dependency-rules)
Dependency rules to add more metadata as input to dependency resolution where needed.
- [Video: Caching](https://www.youtube.com/watch?v=nHb0kIcTrFE&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Patch Metadata](gradle/plugins/src/main/kotlin/org.example.gradlebuild.patch-metadata.gradle.kts)
Adjust metadata of exiting modules (3rd party Jars) as input to dependency resolution where needed.
(uses [org.gradlex:java-ecosystem-capabilities](https://github.com/gradlex-org/java-ecosystem-capabilities)).
- [Video: Capability Conflicts + Component Metadata Rules](https://www.youtube.com/watch?v=5g20kbbqBFk&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Base convention plugins](https://github.com/jjohannes/gradle-project-setup-howto/commit/base-plugins)
Configure things shared by all projects - like setting a version and consistent resolution.
- [Video: Dependency Version Conflicts + Consistent Resolution](https://www.youtube.com/watch?v=YYWhfy6c2YQ&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Versions](https://github.com/jjohannes/gradle-project-setup-howto/commit/versions)
Put all versions into a _platform_; use BOMs where available for libraries that consist of multiple components.
- [Patch Non-Modules](gradle/plugins/src/main/kotlin/org.example.gradlebuild.patch-non-modules.gradle.kts)
**Only when using the Module Path:** Add missing _module-info_ to 3rd party Jars
- [Video: The Module Path](https://www.youtube.com/watch?v=X9u1taDwLSA&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Base convention plugins](gradle/plugins/src/main/kotlin/org.example.gradlebuild.java-base.gradle.kts)
Configure things shared by all your modules: _group_ and _version_
- [Versions](gradle/plugins/src/main/kotlin/org.example.gradlebuild.java-module-versions.gradle.kts) / [gradle/versions/build.gradle.kts](gradle/versions/build.gradle.kts)
Define the versions of 3rd party modules in a _platform_ project.
- [Video: Centralizing Dependency Versions](https://www.youtube.com/watch?v=8044F5gc1dE&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Java base convention plugins](https://github.com/jjohannes/gradle-project-setup-howto/commit/java-base-plugins)
Configure Java project specifics for compilation and testing in several convention plugins.
- [Video: The Build Files](https://www.youtube.com/watch?v=OKjE_Lt_66U&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Video: (Convention) Plugins](https://www.youtube.com/watch?v=N95YI-szd78&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Java building convention plugin](https://github.com/jjohannes/gradle-project-setup-howto/commit/java-base-plugins) / [Main feature](gradle/plugins/src/main/kotlin/org.example.gradlebuild.feature-main.gradle.kts)
Configure Java project specifics for compilation and dependency resolution.
- [Video: Source Sets](https://www.youtube.com/watch?v=74PDtHkS_w4&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Video: The JavaCompile Task](https://www.youtube.com/watch?v=wFewehz6rW8&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Video: Dependency Version Conflicts + Consistent Resolution](https://www.youtube.com/watch?v=YYWhfy6c2YQ&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Java testing convention plugin](https://github.com/jjohannes/gradle-project-setup-howto/commit/java-base-plugins) / [Standard test suite](gradle/plugins/src/main/kotlin/org.example.gradlebuild.test-suite-test.gradle.kts)
Configure Java project specifics for testing.
- [Video: Configuring Testing](https://www.youtube.com/watch?v=7f_gBvGQN_0&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Video: The Test Task](https://www.youtube.com/watch?v=YJjNQJSaFww&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Video: The JavaCompile Task](https://www.youtube.com/watch?v=wFewehz6rW8&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Java library convention plugins](https://github.com/jjohannes/gradle-project-setup-howto/commit/java-library-plugins)
Combine convention plugins to different concrete _library_ types that you use in your `build.gradle.kts` files.
Test Fixtures
- (Optional) [Video: Publishing Libraries](https://www.youtube.com/watch?v=8z5KFCLZDd0&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Java application convention plugins](https://github.com/jjohannes/gradle-project-setup-howto/commit/java-application-plugins)
- **optional** [Additional Test Suites](gradle/plugins/src/main/kotlin/org.example.gradlebuild.test-suite-end-to-end-test.gradle.kts)
Add more test suites if desires.
- [Video: Source Sets](https://www.youtube.com/watch?v=74PDtHkS_w4&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Video: Configuring Testing](https://www.youtube.com/watch?v=7f_gBvGQN_0&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- **optional** [Additional Feature](gradle/plugins/src/main/kotlin/org.example.gradlebuild.feature-mock-api.gradle.kts) / [Test Fixtures](gradle/plugins/src/main/kotlin/org.example.gradlebuild.feature-test-fixtures.gradle.kts)
- [Video: Source Sets](https://www.youtube.com/watch?v=74PDtHkS_w4&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Video: Feature Variants](https://www.youtube.com/watch?v=XCzyUESaBHQ&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Video: Test Fixtures](https://www.youtube.com/watch?v=fSRN6YKa5B0&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- **optional** [Publishing](gradle/plugins/src/main/kotlin/org.example.gradlebuild.java-module-publishing.gradle.kts)
- [Video: Publishing Libraries](https://www.youtube.com/watch?v=8z5KFCLZDd0&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Java library modules](gradle/plugins/src/main/kotlin/org.example.gradlebuild.java-library-module.gradle.kts) / [<module-folder>/build.gradle.kts](naboo/build.gradle.kts)
Combine convention plugins to concrete _library module_ types that you use in your `build.gradle.kts` files.
- [Video: The Build Files](https://www.youtube.com/watch?v=OKjE_Lt_66U&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Video: (Convention) Plugins](https://www.youtube.com/watch?v=N95YI-szd78&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Java application modules](gradle/plugins/src/main/kotlin/org.example.gradlebuild.java-application-module.gradle.kts)
A specific project is the `:app` project which assembles the final application.
This is a good place to also aggregate other information like _test result_ and _coverage reports_ for the whole project.
It is also the place where you often need custom tasks - e.g. to generate additional resources.
Expand All @@ -73,18 +86,18 @@ Different structuring concerns are summarized in commits if you like to explore
- [Video: Feature Variants](https://www.youtube.com/watch?v=XCzyUESaBHQ&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Video: Test and Code Coverage Reporting](https://www.youtube.com/watch?v=uZvzWlP9BYE&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Video: Detect and Resolve Collisions on a Classpath](https://www.youtube.com/watch?v=KocTqF0hO_8&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Lifecycle Tasks and Root project](https://github.com/jjohannes/gradle-project-setup-howto/commit/lifecycle-tasks)
Add lifecycle tasks through a convention plugin for the root `build.gradle.kts`.
- [Video: Lifecycle Tasks](https://www.youtube.com/watch?v=sOo0p4Gpjcc&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Customized dependency analysis](https://github.com/jjohannes/gradle-project-setup-howto/commit/analyze-dependencies)
- [Dependency analysis](gradle/plugins/src/main/kotlin/org.example.gradlebuild.root.gradle.kts)
You have to take care of your dependencies and versions regularly:
When your project evolves and when new versions of external dependencies are released.
Team members not so familiar with the build setup might need to touch only these places.
Put some dependency analysis in place to help everyone to keep the build tidy over time.
- Use the superb [dependency-analysis-gradle-plugin](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin)
- Write some small custom analysis code that produces actionable error messages that fit your project structure
- [Video: Clean Compile Classpaths with the Dependency Analysis Plugin](https://www.youtube.com/watch?v=Lipf5piizZc&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [gradle.properties](https://github.com/jjohannes/gradle-project-setup-howto/commit/gradle-properties)
- Lifecycle Tasks
Add additional lifecycle tasks if desired to make the build more accessible (useful if additional test suites are configured).
- [Video: Lifecycle Tasks](https://www.youtube.com/watch?v=sOo0p4Gpjcc&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [gradle.properties](gradle.properties)
Tune Gradle performance by setting `gradle.properties`.
- [Video: The JavaCompile Task](https://www.youtube.com/watch?v=wFewehz6rW8&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
- [Video: Caching](https://www.youtube.com/watch?v=nHb0kIcTrFE&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)
Expand Down
6 changes: 3 additions & 3 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
plugins {
id("org.example.gradlebuild.java-application-module")
id("org.example.gradlebuild.feature-mock-api")
id("org.example.gradlebuild.test-suite-end-to-end-test")
id("org.example.product.gradlebuild.java-application-module")
id("org.example.product.gradlebuild.feature-mock-api")
id("org.example.product.gradlebuild.test-suite-end-to-end-test")
}

application {
Expand Down
Empty file removed app/resources/macos/icon.icns
Empty file.
2 changes: 1 addition & 1 deletion app/src/main/java/org/example/product/app/MainModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public class MainModule {
private static final Logger LOGGER = LoggerFactory.getLogger(MainModule.class);

public void run() throws IOException {
LOGGER.info("Running application...");
LOGGER.info("Running application in module: " + MainModule.class.getModule().getName());

new BespinModule().doThings();
new KaminoModule();
Expand Down
File renamed without changes
File renamed without changes.
Binary file added app/src/main/resourcesPackage/macos/icon.icns
Binary file not shown.
File renamed without changes.
2 changes: 1 addition & 1 deletion bespin/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
plugins {
id("org.example.gradlebuild.java-library-module")
id("org.example.product.gradlebuild.java-library-module")
}
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
plugins {
id("org.example.gradlebuild.root")
id("org.example.product.gradlebuild.root")
}
4 changes: 2 additions & 2 deletions corellia/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
plugins {
id("org.example.gradlebuild.java-library-module")
id("org.example.gradlebuild.feature-test-fixtures")
id("org.example.product.gradlebuild.java-library-module")
id("org.example.product.gradlebuild.feature-test-fixtures")
}
1 change: 1 addition & 0 deletions corellia/src/main/java/module-info.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@

requires org.apache.commons.io;
requires org.apache.poi.ooxml;
requires transitive org.apache.poi.poi;
}
2 changes: 1 addition & 1 deletion coruscant/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
plugins {
id("org.example.gradlebuild.java-library-module")
id("org.example.product.gradlebuild.java-library-module")
}
1 change: 1 addition & 0 deletions gradle/jdk-version.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
17.0.6
4 changes: 4 additions & 0 deletions gradle/modules.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# https://onepiece.software/j/#modules

jakarta.activation=com.sun.activation:jakarta.activation
jakarta.mail=com.sun.mail:jakarta.mail
20 changes: 0 additions & 20 deletions gradle/platform/build.gradle.kts

This file was deleted.

16 changes: 16 additions & 0 deletions gradle/plugins/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
plugins { `kotlin-dsl`}

repositories.maven("https://plugins.gradle.org/m2")
repositories.maven("https://gradle.onepiece.software:1443/releases")

dependencies {
implementation("com.autonomousapps:dependency-analysis-gradle-plugin:1.29.0")
implementation("com.gradle:gradle-enterprise-gradle-plugin:3.16.1")
implementation("io.fuchs.gradle.classpath-collision-detector:classpath-collision-detector:0.3")
implementation("org.gradle.toolchains:foojay-resolver:0.7.0")
implementation("org.gradlex:extra-java-module-info:1.7")
implementation("org.gradlex:java-ecosystem-capabilities:1.5")
implementation("org.gradlex:java-module-dependencies:1.5.1")
implementation("org.gradlex:java-module-packaging:0.0.7")
implementation("org.gradlex:java-module-testing:1.4")
}
1 change: 1 addition & 0 deletions gradle/plugins/settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
includeBuild("../../../../plugins/onepiece-j")
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
plugins {
id("java")
}

tasks.compileJava {
options.forkOptions.jvmArgs = listOf()
options.compilerArgs = listOf()
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
plugins {
id("java")
}

val mockApi = sourceSets.create("mockApi")
java.registerFeature(mockApi.name) { usingSourceSet(mockApi) }

tasks.named<JavaCompile>("compileMockApiJava") {
options.forkOptions.jvmArgs = listOf()
options.compilerArgs = listOf()
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
plugins {
id("java-test-fixtures")
}

tasks.compileTestFixturesJava {
options.forkOptions.jvmArgs = listOf()
options.compilerArgs = listOf()
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
plugins {
id("application")
id("io.fuchs.gradle.classpath-collision-detector")
id("org.example.product.gradlebuild.java-base")
id("org.example.product.gradlebuild.java-module-building")
id("org.example.product.gradlebuild.java-module-testing")
}

javaModulePackaging {
applicationName = "Gradle Project Setup HowTo"
applicationDescription = "How to structure a growing Gradle project with smart dependency management?"
vendor = "Jendrik Johannes (onepiece.Software)"
copyright = "Copyright 2024, Jendrik Johannes"
}

application {
applicationDefaultJvmArgs = listOf()
}

tasks.withType<JavaExec>().configureEach { args() }
Loading

0 comments on commit 66ae55b

Please sign in to comment.