JAVA-11495 Moved gradle modules to gradle-modules
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
## Akka
|
||||
|
||||
This module contains modules about Akka.
|
||||
@@ -0,0 +1,2 @@
|
||||
**/build/**
|
||||
/build/
|
||||
@@ -0,0 +1,4 @@
|
||||
### Relevant Articles:
|
||||
|
||||
- [Run a Java main Method Using Gradle](https://www.baeldung.com/gradle-run-java-main)
|
||||
- [Finding Unused Gradle Dependencies](https://www.baeldung.com/gradle-finding-unused-dependencies)
|
||||
@@ -0,0 +1,21 @@
|
||||
plugins{
|
||||
id "nebula.lint" version "16.9.0"
|
||||
}
|
||||
|
||||
description = "Gradle 5 root project"
|
||||
allprojects {
|
||||
apply plugin :"java"
|
||||
apply plugin :"nebula.lint"
|
||||
gradleLint {
|
||||
rules=['unused-dependency']
|
||||
reportFormat = 'text'
|
||||
}
|
||||
group = "com.baeldung"
|
||||
version = "0.0.1"
|
||||
sourceCompatibility = "1.8"
|
||||
targetCompatibility = "1.8"
|
||||
|
||||
repositories {
|
||||
jcenter()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
## Relevant Articles:
|
||||
|
||||
- [Passing Command Line Arguments in Gradle](https://www.baeldung.com/gradle-command-line-arguments)
|
||||
@@ -0,0 +1,38 @@
|
||||
apply plugin: "java"
|
||||
apply plugin: "application"
|
||||
description = "Gradle Command Line Arguments examples"
|
||||
|
||||
ext.javaMainClass = "com.baeldung.cmd.MainClass"
|
||||
|
||||
application {
|
||||
mainClassName = javaMainClass
|
||||
}
|
||||
|
||||
task propertyTypes(){
|
||||
doLast{
|
||||
if (project.hasProperty("args")) {
|
||||
println "Our input argument with project property ["+project.getProperty("args")+"]"
|
||||
}
|
||||
println "Our input argument with system property ["+System.getProperty("args")+"]"
|
||||
}
|
||||
}
|
||||
|
||||
if (project.hasProperty("args")) {
|
||||
ext.cmdargs = project.getProperty("args")
|
||||
} else {
|
||||
ext.cmdargs = "ls"
|
||||
}
|
||||
|
||||
task cmdLineJavaExec(type: JavaExec) {
|
||||
group = "Execution"
|
||||
description = "Run the main class with JavaExecTask"
|
||||
classpath = sourceSets.main.runtimeClasspath
|
||||
main = javaMainClass
|
||||
args cmdargs.split()
|
||||
}
|
||||
|
||||
task cmdLineExec(type: Exec) {
|
||||
group = "Execution"
|
||||
description = "Run an external program with ExecTask"
|
||||
commandLine cmdargs.split()
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.baeldung.cmd;
|
||||
|
||||
public class MainClass {
|
||||
public static void main(String[] args) {
|
||||
System.out.println("Gradle command line arguments example");
|
||||
for (String arg : args) {
|
||||
System.out.println("Got argument [" + arg + "]");
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,5 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip
|
||||
+164
@@ -0,0 +1,164 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
##############################################################################
|
||||
##
|
||||
## Gradle start up script for UN*X
|
||||
##
|
||||
##############################################################################
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
# Resolve links: $0 may be a link
|
||||
PRG="$0"
|
||||
# Need this for relative symlinks.
|
||||
while [ -h "$PRG" ] ; do
|
||||
ls=`ls -ld "$PRG"`
|
||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||
if expr "$link" : '/.*' > /dev/null; then
|
||||
PRG="$link"
|
||||
else
|
||||
PRG=`dirname "$PRG"`"/$link"
|
||||
fi
|
||||
done
|
||||
SAVED="`pwd`"
|
||||
cd "`dirname \"$PRG\"`/" >/dev/null
|
||||
APP_HOME="`pwd -P`"
|
||||
cd "$SAVED" >/dev/null
|
||||
|
||||
APP_NAME="Gradle"
|
||||
APP_BASE_NAME=`basename "$0"`
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS=""
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD="maximum"
|
||||
|
||||
warn ( ) {
|
||||
echo "$*"
|
||||
}
|
||||
|
||||
die ( ) {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "`uname`" in
|
||||
CYGWIN* )
|
||||
cygwin=true
|
||||
;;
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
NONSTOP* )
|
||||
nonstop=true
|
||||
;;
|
||||
esac
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD="java"
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
||||
MAX_FD_LIMIT=`ulimit -H -n`
|
||||
if [ $? -eq 0 ] ; then
|
||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
||||
MAX_FD="$MAX_FD_LIMIT"
|
||||
fi
|
||||
ulimit -n $MAX_FD
|
||||
if [ $? -ne 0 ] ; then
|
||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
||||
fi
|
||||
else
|
||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
||||
fi
|
||||
fi
|
||||
|
||||
# For Darwin, add options to specify how the application appears in the dock
|
||||
if $darwin; then
|
||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin ; then
|
||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||
|
||||
# We build the pattern for arguments to be converted via cygpath
|
||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
||||
SEP=""
|
||||
for dir in $ROOTDIRSRAW ; do
|
||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
||||
SEP="|"
|
||||
done
|
||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
||||
# Add a user-defined pattern to the cygpath arguments
|
||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
||||
fi
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
i=0
|
||||
for arg in "$@" ; do
|
||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
||||
|
||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
||||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=$((i+1))
|
||||
done
|
||||
case $i in
|
||||
(0) set -- ;;
|
||||
(1) set -- "$args0" ;;
|
||||
(2) set -- "$args0" "$args1" ;;
|
||||
(3) set -- "$args0" "$args1" "$args2" ;;
|
||||
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
|
||||
function splitJvmOpts() {
|
||||
JVM_OPTS=("$@")
|
||||
}
|
||||
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
|
||||
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
|
||||
|
||||
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
|
||||
Vendored
+90
@@ -0,0 +1,90 @@
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS=
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:init
|
||||
@rem Get command-line arguments, handling Windows variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
if "%@eval[2+2]" == "4" goto 4NT_args
|
||||
|
||||
:win9xME_args
|
||||
@rem Slurp the command line arguments.
|
||||
set CMD_LINE_ARGS=
|
||||
set _SKIP=2
|
||||
|
||||
:win9xME_args_slurp
|
||||
if "x%~1" == "x" goto execute
|
||||
|
||||
set CMD_LINE_ARGS=%*
|
||||
goto execute
|
||||
|
||||
:4NT_args
|
||||
@rem Get arguments from the 4NT Shell from JP Software
|
||||
set CMD_LINE_ARGS=%$
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
||||
@@ -0,0 +1 @@
|
||||
/build/
|
||||
@@ -0,0 +1,47 @@
|
||||
apply plugin: "application"
|
||||
|
||||
description = "Java MainClass execution examples"
|
||||
|
||||
ext {
|
||||
javaMainClass = "com.baeldung.gradle.exec.MainClass"
|
||||
}
|
||||
|
||||
jar {
|
||||
manifest {
|
||||
attributes(
|
||||
"Main-Class": javaMainClass
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
application {
|
||||
mainClassName = javaMainClass
|
||||
}
|
||||
|
||||
task runWithJavaExec(type: JavaExec) {
|
||||
group = "Execution"
|
||||
description = "Run the main class with JavaExecTask"
|
||||
classpath = sourceSets.main.runtimeClasspath
|
||||
main = javaMainClass
|
||||
}
|
||||
|
||||
task runWithExec(type: Exec) {
|
||||
dependsOn build
|
||||
group = "Execution"
|
||||
description = "Run the main class with ExecTask"
|
||||
commandLine "java", "-classpath", sourceSets.main.runtimeClasspath.getAsPath(), javaMainClass
|
||||
}
|
||||
|
||||
task runWithExecJarExecutable(type: Exec) {
|
||||
dependsOn jar
|
||||
group = "Execution"
|
||||
description = "Run the output executable jar with ExecTask"
|
||||
commandLine "java", "-jar", jar.archiveFile.get()
|
||||
}
|
||||
|
||||
task runWithExecJarOnClassPath(type: Exec) {
|
||||
dependsOn jar
|
||||
group = "Execution"
|
||||
description = "Run the mainClass from the output jar in classpath with ExecTask"
|
||||
commandLine "java", "-classpath", jar.archiveFile.get() , javaMainClass
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
package com.baeldung.gradle.exec;
|
||||
|
||||
public class MainClass {
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println("Goodbye cruel world ...");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
rootProject.name='gradle-5-articles'
|
||||
include 'java-exec'
|
||||
include 'unused-dependencies'
|
||||
include 'source-sets'
|
||||
include 'cmd-line-args'
|
||||
@@ -0,0 +1 @@
|
||||
/build/
|
||||
@@ -0,0 +1,3 @@
|
||||
### Relevant Articles:
|
||||
|
||||
- [Gradle Source Sets](https://www.baeldung.com/gradle-source-sets)
|
||||
@@ -0,0 +1,67 @@
|
||||
|
||||
apply plugin: "eclipse"
|
||||
apply plugin: "java"
|
||||
|
||||
description = "Source Sets example"
|
||||
|
||||
task printSourceSetInformation(){
|
||||
description = "Print source set information"
|
||||
|
||||
doLast{
|
||||
sourceSets.each { srcSet ->
|
||||
println "["+srcSet.name+"]"
|
||||
print "-->Source directories: "+srcSet.allJava.srcDirs+"\n"
|
||||
print "-->Output directories: "+srcSet.output.classesDirs.files+"\n"
|
||||
print "-->Compile classpath:\n"
|
||||
srcSet.compileClasspath.files.each {
|
||||
print " "+it.path+"\n"
|
||||
}
|
||||
println ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets{
|
||||
itest {
|
||||
compileClasspath += sourceSets.main.output
|
||||
runtimeClasspath += sourceSets.main.output
|
||||
java {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
test {
|
||||
testLogging {
|
||||
events "passed","skipped", "failed"
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation('org.apache.httpcomponents:httpclient:4.5.12')
|
||||
testImplementation('junit:junit:4.12')
|
||||
itestImplementation('com.google.guava:guava:29.0-jre')
|
||||
}
|
||||
|
||||
task itest(type: Test) {
|
||||
description = "Run integration tests"
|
||||
group = "verification"
|
||||
testClassesDirs = sourceSets.itest.output.classesDirs
|
||||
classpath = sourceSets.itest.runtimeClasspath
|
||||
}
|
||||
|
||||
itest {
|
||||
testLogging {
|
||||
events "passed","skipped", "failed"
|
||||
}
|
||||
}
|
||||
|
||||
configurations {
|
||||
itestImplementation.extendsFrom(testImplementation)
|
||||
itestRuntimeOnly.extendsFrom(testRuntimeOnly)
|
||||
}
|
||||
|
||||
eclipse {
|
||||
classpath {
|
||||
plusConfigurations+=[configurations.itestCompileClasspath]
|
||||
}
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
package com.baeldung.itest;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.junit.Assert.assertThat;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import com.baeldung.main.SourceSetsObject;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
public class SourceSetsItest {
|
||||
|
||||
@Test
|
||||
public void givenImmutableList_whenRun_ThenSuccess() {
|
||||
|
||||
SourceSetsObject underTest = new SourceSetsObject("lorem", "ipsum");
|
||||
List<String> someStrings = ImmutableList.of("Baeldung", "is", "cool");
|
||||
|
||||
assertThat(underTest.getUser(), is("lorem"));
|
||||
assertThat(underTest.getPassword(), is("ipsum"));
|
||||
assertThat(someStrings.size(), is(3));
|
||||
}
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
package com.baeldung.main;
|
||||
|
||||
public class SourceSetsMain {
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println("Hell..oh...world!");
|
||||
}
|
||||
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
package com.baeldung.main;
|
||||
|
||||
public class SourceSetsObject {
|
||||
|
||||
private final String user;
|
||||
private final String password;
|
||||
|
||||
public SourceSetsObject(String user, String password) {
|
||||
this.user = user;
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
public String getUser() {
|
||||
return user;
|
||||
}
|
||||
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
package com.baeldung.test;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.junit.Assert.assertThat;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import com.baeldung.main.SourceSetsObject;
|
||||
|
||||
public class SourceSetsTest {
|
||||
|
||||
@Test
|
||||
public void whenRun_ThenSuccess() {
|
||||
|
||||
SourceSetsObject underTest = new SourceSetsObject("lorem", "ipsum");
|
||||
|
||||
assertThat(underTest.getUser(), is("lorem"));
|
||||
assertThat(underTest.getPassword(), is("ipsum"));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
/build/
|
||||
@@ -0,0 +1,8 @@
|
||||
|
||||
description = "Gradle Unused Dependencies example"
|
||||
|
||||
dependencies {
|
||||
implementation('com.google.guava:guava:29.0-jre')
|
||||
implementation('org.apache.httpcomponents:httpclient:4.5.12')
|
||||
testImplementation('junit:junit:4.12')
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
package com.baeldung.unused;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.http.ssl.SSLContextBuilder;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
public class UnusedDependencies {
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println("Hello world");
|
||||
useGuava();
|
||||
useHttpCore();
|
||||
useHttpClientWithReflection();
|
||||
}
|
||||
|
||||
private static void useGuava() {
|
||||
List<String> list = ImmutableList.of("Baledung", "is", "cool");
|
||||
System.out.println(list.stream()
|
||||
.collect(Collectors.joining(" ")));
|
||||
}
|
||||
|
||||
private static void useHttpCore() {
|
||||
SSLContextBuilder.create();
|
||||
}
|
||||
|
||||
private static void useHttpClientWithReflection() {
|
||||
try {
|
||||
Class<?> httpBuilder = Class.forName("org.apache.http.impl.client.HttpClientBuilder");
|
||||
Method create = httpBuilder.getMethod("create", null);
|
||||
create.invoke(httpBuilder, null);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
# Gradle
|
||||
|
||||
.gradle
|
||||
build
|
||||
|
||||
# Ignore Gradle GUI config
|
||||
gradle-app.setting
|
||||
|
||||
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
|
||||
!gradle-wrapper.jar
|
||||
|
||||
# Cache of project
|
||||
.gradletasknamecache
|
||||
|
||||
# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
|
||||
# gradle/wrapper/gradle-wrapper.properties
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
### Relevant Articles:
|
||||
|
||||
- [What’s New in Gradle 6.0](https://www.baeldung.com/gradle-6-features)
|
||||
@@ -0,0 +1,5 @@
|
||||
subprojects {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
plugins {
|
||||
base
|
||||
}
|
||||
|
||||
description = """
|
||||
Demonstrates Gradle Configuraiton Avoidance API. Creates a new configuration "extralibs" to
|
||||
which we add dependencies. The custom task "copyExtraLibs" copies those dependencies to a new
|
||||
build directory "extra-libs". This build uses the Task Configuraion Avoidance APIs which have
|
||||
been marked stable in Gradle 6.0
|
||||
""".trimIndent()
|
||||
|
||||
// extraLibs is a NamedDomainObjectProvider<Configuration!> - the Configuration object will not be
|
||||
// realized until it is needed. In the meantime, the build may reference it by name
|
||||
val extralibs by configurations.registering
|
||||
|
||||
dependencies {
|
||||
// we can call extralibs.name without causing the extralibs to be realized
|
||||
add(extralibs.name, "junit:junit:4.12")
|
||||
}
|
||||
|
||||
// extraLibsDir is a Provider<Directory!> - the Directory object will not be realized until it is
|
||||
// needed
|
||||
val extraLibsDir = project.layout.buildDirectory.dir("extra-libs")
|
||||
|
||||
// copyExtraLibs is a TaskProvider<Copy!> - the task will not be realized until it is needed
|
||||
val copyExtraLibs by tasks.registering(Copy::class) {
|
||||
// the copy task's "from" and "into" APIs accept Provider types to support configuration
|
||||
// avoidance
|
||||
from(extralibs)
|
||||
into(extraLibsDir)
|
||||
}
|
||||
|
||||
// configures the "build" task only if it needs to be
|
||||
tasks.build {
|
||||
// dependsOn accepts a TaskProvider to avoid realizing the copyExtraLibs needlessly
|
||||
dependsOn(copyExtraLibs)
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
plugins {
|
||||
`java-library`
|
||||
}
|
||||
|
||||
group = "com.baeldung"
|
||||
version = "1.0.0"
|
||||
|
||||
dependencies {
|
||||
api("io.reactivex.rxjava2:rxjava:2.2.16")
|
||||
implementation("com.google.guava:guava") {
|
||||
version {
|
||||
require("10.0")
|
||||
prefer("28.1-jre")
|
||||
because("Only uses ImmutableList type, so any version since 2.0 will do, but tested with 28.1-jre")
|
||||
}
|
||||
}
|
||||
|
||||
testImplementation("org.junit.jupiter:junit-jupiter-api:5.5.2")
|
||||
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.5.2")
|
||||
}
|
||||
|
||||
tasks.compileJava {
|
||||
sourceCompatibility = "1.8"
|
||||
targetCompatibility = "1.8"
|
||||
}
|
||||
|
||||
tasks.test {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user