spring-gradle-plugins / spring-build-conventions Goto Github PK
View Code? Open in Web Editor NEWContains common build logic and uses conventions to build a Spring Project with Gradle
Contains common build logic and uses conventions to build a Spring Project with Gradle
Update to Gradle 6.2.1
Previously if an artifact was a milestone or release candidate it would
be incorrectly deployed to maven central.
This ensures that only releases are deployed to maven central and all other
artifacts are deployed to artifactory.
Extract logic into convention plugin that will eventually be moved into a separate project
Allow Support for in memory pgp keys for signing https://docs.gradle.org/current/userguide/signing_plugin.html#sec:in-memory-keys
This is a breaking change, but necessary to avoid issues with JRuby. See https://asciidoctor.github.io/asciidoctor-gradle-plugin/development-2.0/
nexusStaging {
// try for 5 minutes total
numberOfRetries = 60 // default is 20
delayBetweenRetriesInMillis = 5000 // default is 2000
}
There is now support for https://github.com/spring-io/spring-asciidoctor-extensions#block-switch
Separate the asciidoc conventions from the docs plugin. DocsPlugin will find all projects have a plugin of adoc or javadoc (perhaps implementing common interface) and add to zip file
The io.spring.conventions.docs
Gradle Plugin from Spring Build Conventions fails to resolve the spring.css
file when building and rendering Asciidocs to HTML, EPUB, PDF, etc.
When building with Gradle 6.2
(or Gradle 5.6.x
, e.g. 5.6.4
), using Spring Build Conventions 0.0.30.RELEASE
throws an Exception while running the Asciidoctor Gradle build task:
$ gradlew --no-daemon :spring-session-docs:build
...
..
.
> Task :spring-session-docs:asciidoctor
Feb 20, 2020 11:30:03 AM uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/reader.rb preprocess_include_directive
WARNING: java-redis.adoc: line 167: detected unclosed tag 'class' starting at line 26 of include file: /Users/jblum/pivdev/spring-session/spring-session-samples/spring-session-sample-javaconfig-redis/src/main/java/sample/SessionServlet.java
Feb 20, 2020 11:30:03 AM uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/parser.rb next_section
WARNING: xml-jdbc.adoc: line 173: unterminated example block
Feb 20, 2020 11:30:03 AM uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/converter/html5.rb convert_section
INFO: possible invalid reference: httpsession-xml-spring-configuration
Feb 20, 2020 11:30:03 AM org.asciidoctor.jruby.internal.JRubyAsciidoctor convertFile
SEVERE: (ENOENT) No such file or directory - /Users/jblum/pivdev/spring-session/spring-session-docs/build/docs/asciidoc/guides/css/spring.css
Exception in thread "main" org.asciidoctor.gradle.remote.AsciidoctorRemoteExecutionException: Error running Asciidoctor whilst attempting to process /Users/jblum/pivdev/spring-session/spring-session-docs/build/tmp/asciidoctor.intermediate/guides/xml-redis.adoc using backend html5
at org.asciidoctor.gradle.remote.AsciidoctorJavaExec$_convertFiles_closure4.doCall(AsciidoctorJavaExec.groovy:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:104)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:326)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041)
at groovy.lang.Closure.call(Closure.java:411)
at groovy.lang.Closure.call(Closure.java:427)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2296)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2281)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2334)
at org.asciidoctor.gradle.remote.AsciidoctorJavaExec.convertFiles(AsciidoctorJavaExec.groovy:80)
at org.asciidoctor.gradle.remote.AsciidoctorJavaExec.access$1(AsciidoctorJavaExec.groovy)
at org.asciidoctor.gradle.remote.AsciidoctorJavaExec$_run_closure3.doCall(AsciidoctorJavaExec.groovy:72)
at org.asciidoctor.gradle.remote.AsciidoctorJavaExec$_run_closure3.call(AsciidoctorJavaExec.groovy)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2296)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2281)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2322)
at org.asciidoctor.gradle.remote.AsciidoctorJavaExec.run(AsciidoctorJavaExec.groovy:67)
at org.asciidoctor.gradle.remote.AsciidoctorJavaExec.main(AsciidoctorJavaExec.groovy:49)
Caused by: org.asciidoctor.jruby.internal.AsciidoctorCoreException: org.jruby.exceptions.SystemCallError: (ENOENT) No such file or directory - /Users/jblum/pivdev/spring-session/spring-session-docs/build/docs/asciidoc/guides/css/spring.css
at org.asciidoctor.jruby.internal.JRubyAsciidoctor.convertFile(JRubyAsciidoctor.java:400)
at org.asciidoctor.jruby.internal.JRubyAsciidoctor.convertFile(JRubyAsciidoctor.java:366)
at org.asciidoctor.gradle.remote.AsciidoctorJavaExec$_convertFiles_closure4.doCall(AsciidoctorJavaExec.groovy:85)
... 22 more
Caused by: org.jruby.exceptions.SystemCallError: (ENOENT) No such file or directory - /Users/jblum/pivdev/spring-session/spring-session-docs/build/docs/asciidoc/guides/css/spring.css
at org.jruby.RubyIO.sysopen(org/jruby/RubyIO.java:1239)
at org.jruby.RubyIO.write(org/jruby/RubyIO.java:3804)
at RUBY.convert(uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/convert.rb:160)
at RUBY.convert_file(uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/convert.rb:183)
at org.jruby.RubyIO.open(org/jruby/RubyIO.java:1160)
at RUBY.convert_file(uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/convert.rb:183)
This is the build output from Spring Session core after upgrading the Spring Build Conventions Gradle Plugin to 0.0.30.RELEASE
in build.gradle.
Given the following build from the Spring Security sample helloworld:
apply plugin: 'io.spring.convention.spring-sample-boot'
dependencies {
compile project(':spring-security-config')
compile project(':spring-security-web')
compile 'org.springframework.boot:spring-boot-starter-security'
compile 'org.springframework.boot:spring-boot-starter-thymeleaf'
compile 'org.springframework.boot:spring-boot-starter-web'
compile 'org.thymeleaf.extras:thymeleaf-extras-springsecurity4'
testCompile project(':spring-security-test')
testCompile 'org.springframework.boot:spring-boot-starter-test'
}
Both spring-security-config
and spring-security-web
are configured as provided as a result of importing org.springframework.boot:spring-boot-starter-security
.
However...
Given the following build from the Spring Security sample oauth2Login:
apply plugin: 'io.spring.convention.spring-sample-boot'
dependencies {
compile project(':spring-security-config')
compile project(':spring-security-web')
compile project(':spring-security-oauth2-client')
compile 'org.springframework.boot:spring-boot-starter-security'
compile 'org.springframework.boot:spring-boot-starter-thymeleaf'
compile 'org.springframework.boot:spring-boot-starter-web'
compile 'org.thymeleaf.extras:thymeleaf-extras-springsecurity4'
testCompile project(':spring-security-test')
testCompile 'net.sourceforge.htmlunit:htmlunit'
testCompile 'org.springframework.boot:spring-boot-starter-test'
}
Only spring-security-config
is configured as provided as a result of importing org.springframework.boot:spring-boot-starter-security
. But spring-security-web
is configured as compille. The expectation would be that it also would be configured as provided as is the case in the helloworld sample.
Furthermore, I feel that project imports should take precedence over dependency imports. So in both cases above, although org.springframework.boot:spring-boot-starter-security
imports spring-security-config
and spring-security-web
, if they are explicitly imported as projects than I feel the configuration should be compile.
Can we please upgrade and rebase the Spring Build Conventions project on the latest Gradle 7.x version?
Setup symlinks for current, current-SNAPSHOT, 4.x, etc
When using the spring-sample-war
plugin, if I do:
gretty {
httpsEnabled = true
}
Then integration tests will fail because gretty is not selecting a random HTTPS port like it does for the HTTP port.
Update to spring-javaformat-checkstyle 0.0.7
Due to recent changes in how Spring Maven repositories are being managed, it may be best to resolve first from Maven Central instead of from libs-snapshot|milestone|release
.
In Spring Security, the following change was necessary for Code Coverage to report in Sonar:
https://github.com/spring-projects/spring-security/pull/6135/files
Ideally, this extra work wouldn't be necessary. It could possibly be provided or obviated by convention.
This fixes tab switching issues related to spring-io/spring-asciidoctor-extensions#45
It appears that creating files within guides/*.adoc causes errors.
Updating Spring Security 5.1.x to spring-build-conventions:0.0.24.RELEASE
and running the command ./gradlew :spring-security-docs-manual:asciidoctor
results in the following error:
Mar 26, 2019 4:59:10 PM org.asciidoctor.internal.JRubyAsciidoctor convertFile
SEVERE: (NoMethodError) undefined method `[]' for nil:NilClass
Exception in thread "main" org.asciidoctor.gradle.backported.AsciidoctorRemoteExecutionException: Error running Asciidoctor whilst attempting to process /Users/jgrandja/workspace/spring-security-fork/docs/manual/src/docs/asciidoc/index.adoc using backend docbook5
at org.asciidoctor.gradle.backported.AsciidoctorJavaExec$_convertFiles_closure3.doCall(AsciidoctorJavaExec.groovy:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
at groovy.lang.Closure.call(Closure.java:418)
at groovy.lang.Closure.call(Closure.java:434)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2110)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2163)
at org.asciidoctor.gradle.backported.AsciidoctorJavaExec.convertFiles(AsciidoctorJavaExec.groovy:56)
at org.asciidoctor.gradle.backported.AsciidoctorJavaExec.access$0(AsciidoctorJavaExec.groovy)
at org.asciidoctor.gradle.backported.AsciidoctorJavaExec$_run_closure2.doCall(AsciidoctorJavaExec.groovy:50)
at org.asciidoctor.gradle.backported.AsciidoctorJavaExec$_run_closure2.call(AsciidoctorJavaExec.groovy)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2110)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2151)
at org.asciidoctor.gradle.backported.AsciidoctorJavaExec.run(AsciidoctorJavaExec.groovy:48)
at org.asciidoctor.gradle.backported.AsciidoctorJavaExec.main(AsciidoctorJavaExec.groovy:194)
Caused by: org.asciidoctor.internal.AsciidoctorCoreException: org.jruby.exceptions.NoMethodError: (NoMethodError) undefined method `[]' for nil:NilClass
at org.asciidoctor.internal.JRubyAsciidoctor.convertFile(JRubyAsciidoctor.java:498)
at org.asciidoctor.internal.JRubyAsciidoctor.convertFile(JRubyAsciidoctor.java:469)
at org.asciidoctor.gradle.backported.AsciidoctorJavaExec$_convertFiles_closure3.doCall(AsciidoctorJavaExec.groovy:61)
... 22 more
Caused by: org.jruby.exceptions.NoMethodError: (NoMethodError) undefined method `[]' for nil:NilClass
at RUBY.restore_passthroughs(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/substitutors.rb:350)
at org.jruby.RubyString.gsub(org/jruby/RubyString.java:3056)
at RUBY.restore_passthroughs(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/substitutors.rb:347)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.substitutors.apply_subs(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/substitutors.rb:128)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.block.content(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/block.rb:112)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.converter.docbook5.paragraph(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/converter/docbook5.rb:364)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.converter.base.convert(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/converter/base.rb:38)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.abstract_block.convert(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/abstract_block.rb:75)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.abstract_block.content(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/abstract_block.rb:84)
at org.jruby.RubyArray.map(org/jruby/RubyArray.java:2577)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.abstract_block.content(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/abstract_block.rb:84)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.converter.docbook5.section(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/converter/docbook5.rb:56)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.converter.base.convert(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/converter/base.rb:38)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.abstract_block.convert(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/abstract_block.rb:75)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.abstract_block.content(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/abstract_block.rb:84)
at org.jruby.RubyArray.map(org/jruby/RubyArray.java:2577)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.abstract_block.content(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/abstract_block.rb:84)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.converter.docbook5.section(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/converter/docbook5.rb:56)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.converter.base.convert(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/converter/base.rb:38)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.abstract_block.convert(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/abstract_block.rb:75)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.abstract_block.content(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/abstract_block.rb:84)
at org.jruby.RubyArray.map(org/jruby/RubyArray.java:2577)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.abstract_block.content(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/abstract_block.rb:84)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.converter.docbook5.section(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/converter/docbook5.rb:56)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.converter.base.convert(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/converter/base.rb:38)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.abstract_block.convert(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/abstract_block.rb:75)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.abstract_block.content(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/abstract_block.rb:84)
at org.jruby.RubyArray.map(org/jruby/RubyArray.java:2577)
at RUBY.content(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/abstract_block.rb:84)
at RUBY.section(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/converter/docbook5.rb:56)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.converter.base.convert(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/converter/base.rb:38)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.abstract_block.convert(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/abstract_block.rb:75)
at uri_3a_classloader_3a_.gems.asciidoctor_minus_1_dot_5_dot_8.lib.asciidoctor.abstract_block.content(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/abstract_block.rb:84)
at org.jruby.RubyArray.map(org/jruby/RubyArray.java:2577)
at RUBY.content(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/abstract_block.rb:84)
at RUBY.content(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/document.rb:1261)
at RUBY.document(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/converter/docbook5.rb:36)
at RUBY.convert(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/converter/base.rb:38)
at RUBY.convert(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor/document.rb:1190)
at RUBY.convert(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor.rb:1521)
at RUBY.convert_file(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor.rb:1595)
at org.jruby.RubyIO.open(org/jruby/RubyIO.java:1157)
at RUBY.convert_file(uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor.rb:1595)
> Task :spring-security-docs-manual:asciidoctor FAILED
Reverting back to previous version asciidoctor-gradle-plugin:1.5.8.1
.
Integration Test Should check if HTTPS is enabled and change the HTTPS port too
This fixes when using Gradle 5.0 which fails with the following:
> Configure project :
POM relocation to an other version number is not fully supported in Gradle : xml-apis:xml-apis:2.0.2 relocated to xml-apis:xml-apis:1.0.b2.
Please update your dependency to directly use the correct version 'xml-apis:xml-apis:1.0.b2'.
Resolution will only pick dependencies of the relocated element. Artifacts and other metadata will be ignored.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':schemaZip'.
> The destinationDir property must be set. Please apply the base plugin or set it explicitly.
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':schemaZip'.
at org.gradle.api.internal.tasks.execution.DefaultTaskProperties.resolve(DefaultTaskProperties.java:85)
at org.gradle.execution.plan.DefaultExecutionPlan.resolveMutations(DefaultExecutionPlan.java:610)
at org.gradle.execution.plan.DefaultExecutionPlan.getResolvedMutationInfo(DefaultExecutionPlan.java:597)
at org.gradle.execution.plan.DefaultExecutionPlan.selectNext(DefaultExecutionPlan.java:552)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$2.transform(DefaultPlanExecutor.java:176)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$2.transform(DefaultPlanExecutor.java:163)
at org.gradle.internal.resources.DefaultResourceLockCoordinationService.withStateLock(DefaultResourceLockCoordinationService.java:45)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:163)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.api.InvalidUserDataException: The destinationDir property must be set. Please apply the base plugin or set it explicitly.
at org.gradle.api.tasks.bundling.AbstractArchiveTask.getArchivePath(AbstractArchiveTask.java:95)
at org.gradle.api.tasks.bundling.Zip_Decorated.getArchivePath(Unknown Source)
at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode$DefaultPropertyValue$1$1.create(AbstractNestedRuntimeBeanNode.java:82)
at org.gradle.util.SingleMessageLogger.whileDisabled(SingleMessageLogger.java:337)
at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode$DefaultPropertyValue$1.get(AbstractNestedRuntimeBeanNode.java:79)
at com.google.common.base.Suppliers$NonSerializableMemoizingSupplier.get(Suppliers.java:167)
at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode$DefaultPropertyValue.getValue(AbstractNestedRuntimeBeanNode.java:145)
at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode$DefaultPropertyValue.call(AbstractNestedRuntimeBeanNode.java:158)
at org.gradle.api.internal.tasks.DefaultCacheableTaskOutputFilePropertySpec.getOutputFile(DefaultCacheableTaskOutputFilePropertySpec.java:50)
at org.gradle.api.internal.tasks.properties.GetOutputFilesVisitor.visitOutputFileProperty(GetOutputFilesVisitor.java:44)
at org.gradle.api.internal.tasks.properties.CompositePropertyVisitor.visitOutputFileProperty(CompositePropertyVisitor.java:59)
at org.gradle.api.internal.tasks.properties.annotations.AbstractOutputPropertyAnnotationHandler.visitPropertyValue(AbstractOutputPropertyAnnotationHandler.java:40)
at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode.visitProperties(AbstractNestedRuntimeBeanNode.java:61)
at org.gradle.api.internal.tasks.properties.bean.RootRuntimeBeanNode.visitNode(RootRuntimeBeanNode.java:32)
at org.gradle.api.internal.tasks.properties.DefaultPropertyWalker.visitProperties(DefaultPropertyWalker.java:41)
at org.gradle.api.internal.tasks.TaskPropertyUtils.visitProperties(TaskPropertyUtils.java:39)
at org.gradle.api.internal.tasks.execution.DefaultTaskProperties.resolve(DefaultTaskProperties.java:76)
... 11 more
It would be nice if projects could apply custom actions to perform at the end of the ssh session, once schemas have been deployed.
A real-world use case for this is the fact that spring-security-oauth
XSDs are currently manually copied into the spring-security
autorepo
schema directory. It would be nice to be able to automate this manual step.
remotes {
docs {
timeoutSec = 0 // (default is 0 which is OS default)
retryCount = 5 // retry 5 times (default is 0)
retryWaitSec = 10 // wait 10 seconds between retries (default is 0)
}
}
This is important for our SNAPSHOT builds when performing releases.
We need to update to support use of s01.oss.sonatype.org this can be done by looking for a different credential. Instead of ossrhUsername
we should use ossrhTokenUsername
and ossrhTokenPassword
which will ensure that s01.oss.sonatype.org is used.
The implicit repository always set based up on the version.
However, this makes removing the implicit repository impossible.
Related to 26
Work around ben-manes/gradle-versions-plugin#255
This avoids having the signArchives task delete stale outputs of the
bomFile which causes errors when performing a release.
we need to support both http&https in https://github.com/spring-projects/spring-security-oauth/commits/master/spring-security-oauth2/src/main/resources/META-INF/spring.schemas
like any other spring schemas https://github.com/spring-projects/spring-security/blob/master/config/src/main/resources/META-INF/spring.schemas
even https://github.com/spring-io/nohttp/tree/master/nohttp supports using http for namespace
org.jfrog.buildinfo:build-info-extractor-gradle:4.7.3 and newer produces the following with the Bom plugin
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':artifactoryDeploy'.
[check] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110)
[check] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)
[check] at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
[check] at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
[check] at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
[check] at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
[check] at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
[check] at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
[check] at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
[check] at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
[check] at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
[check] at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
[check] at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
[check] at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
[check] at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:51)
[check] at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
[check] at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
[check] at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
[check] at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
[check] at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
[check] at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
[check] at org.gradle.execution.taskgraph.LocalTaskInfoExecutor.execute(LocalTaskInfoExecutor.java:42)
[check] at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:277)
[check] at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:262)
[check] at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:135)
[check] at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)
[check] at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.execute(DefaultTaskPlanExecutor.java:200)
[check] at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.executeWithWork(DefaultTaskPlanExecutor.java:191)
[check] at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.run(DefaultTaskPlanExecutor.java:130)
[check] at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
[check] at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
[check] at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
[check] Caused by: org.gradle.api.GradleException: File '/opt/jenkins/data/workspace/bug-jenkins-missing-bom-txt-3B4NMFANPPCJAO5ZPFB2UMO5TQR3ACQ4EY5TGTHU73TPD7IN7GOA/bom/build/maven-bom/spring-security-bom-5.2.0.BUILD-SNAPSHOT.txt' does not exists, and need to be published!
With Gradle 4.8, IntelliJ doesn't properly resolve dependencies for a module that relies on this plugin (namely io.spring.convention.spring-test
) and declares only testCompile
dependencies. The net result of this is that the project can't be compiled in IDE.
This behavior can be reproduced using Spring Session, where docs
module declares the following dependencies:
dependencies {
testCompile project(':spring-session-core')
testCompile project(':spring-session-data-redis')
testCompile project(':spring-session-hazelcast')
testCompile project(':spring-session-jdbc')
testCompile 'org.springframework:spring-jdbc'
testCompile 'org.springframework:spring-messaging'
testCompile 'org.springframework:spring-webmvc'
testCompile 'org.springframework:spring-websocket'
testCompile 'org.springframework.security:spring-security-config'
testCompile 'org.springframework.security:spring-security-web'
testCompile 'org.springframework.security:spring-security-test'
testCompile 'junit:junit'
testCompile 'org.mockito:mockito-core'
testCompile 'org.springframework:spring-test'
testCompile 'org.assertj:assertj-core'
testCompile 'com.hazelcast:hazelcast'
testCompile 'io.lettuce:lettuce-core'
testCompile 'javax.servlet:javax.servlet-api'
}
With Gradle 4.7 (project at commit spring-projects/spring-session@63f1050) this is resolved as expected:
However with Gradle 4.8 (project at commit spring-projects/spring-session@4a52de0) this is resolved as:
Which results in compilation errors. If however a single dependency is declared as compile
dependency, then things do work with 4.8:
I've tracked the root cause to use of propdeps-idea
- with that plugin out of the picture, the dependencies are resolved as expected. Perhaps we could consider replacing the propdeps-plugin
with gradle-extra-configurations-plugin
?
Since maven install is never up to date, MavenBomTask always needs to be executed too
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.