Giter Site home page Giter Site logo

spring-build-conventions's People

Contributors

elliedori avatar fhanik avatar izeye avatar jgrandja avatar jxblum avatar jzheaux avatar rwinch avatar spring-operator avatar vpavic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spring-build-conventions's Issues

deployArtifacts only publish release to maven central

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.

Create AdocPlugin

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

0.0.30.RELEASE Plugin fails to build Asciidocs with Exception

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.

Inconsistent dependency configuration

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.

Update dependencies

  • org.asciidoctor:asciidoctor-gradle-plugin [1.5.3 -> 1.5.7]
  • org.assertj:assertj-core [3.8.0 -> 3.9.0]
  • org.jfrog.buildinfo:build-info-extractor-gradle [4.5.2 -> 4.6.2]
  • io.spring.gradle:dependency-management-plugin [1.0.3.RELEASE -> 1.0.4.RELEASE]
  • com.github.ben-manes:gradle-versions-plugin [0.15.0 -> 0.17.0]
  • org.mockito:mockito-core [2.10.0 -> 2.15.0]
  • org.sonarsource.scanner.gradle:sonarqube-gradle-plugin [2.5 -> 2.6.2]

guides/*.adoc causes errors

It appears that creating files within guides/*.adoc causes errors.

  • The file is copies into guides/*.adoc as expected, but it is also copied into ./ which means the file is processed twice. The processing in ./ causes errors when linking to stylesheets since the stylesheets are not found
  • The docinfo-footer.html refers to the css, but it does not adjust based on the fact that the path is now guides vs ./ so the css is not found. A workaround is to use a custom docinfo-footer.html and use docinfofolder for sub directories.

Revert asciidoctor-gradle-plugin 1.6.0 -> 1.5.8.1

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.

RootProjectPlugin Applies BasePlugin

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

SchemaDeployPlugin should support a custom ssh run section

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.

More Resilient scp Settings

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)
	}
}

Support s01.oss.sonatype.org

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.

MavenBomTask use @OutputFile

This avoids having the signArchives task delete stale outputs of the
bomFile which causes errors when performing a release.

spring security oauth2 to support http schema to refer local xsd to support backward compatible

artifactoryPublish.dependsOn project.mavenBom

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!

IntelliJ doesn't properly resolve dependencies with Gradle 4.8 and this plugin

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:

gradle-4 7

However with Gradle 4.8 (project at commit spring-projects/spring-session@4a52de0) this is resolved as:

gradle-4 8

Which results in compilation errors. If however a single dependency is declared as compile dependency, then things do work with 4.8:

gradle-4 8-workaround

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?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.