Skip to content
This repository has been archived by the owner on Sep 2, 2023. It is now read-only.

Improve dependency configuration #68

Closed
cpoulsen-dezide opened this issue May 15, 2018 · 6 comments
Closed

Improve dependency configuration #68

cpoulsen-dezide opened this issue May 15, 2018 · 6 comments
Labels
Milestone

Comments

@cpoulsen-dezide
Copy link

Hi

I'm getting errors due to my module having a "compileOnly" dependency on something used in the controllers that the plugin should generate the swagger definition from.

It looks like the plugin always uses the "runtime" configuration, thereby missing the classes.

I'm not intimately familiar with the gradle stuff, but the dependency I need, seems to be included in the "runtimeOnly" configuration - Maybe that could be considered as well by the plugin.

I think this issue may relate to #59 where the servlet API dependencies probably also are "provided"

If this can't be handled automatically, the plugin should probably use its own configuration that extends runtime, so it is possible to control what is going on.

@cpoulsen-dezide
Copy link
Author

cpoulsen-dezide commented May 15, 2018

Plugin version 0.1.4 resolves provided dependencies just fine, while the v1.0.2 gives an error. That seems like a regression.

Edit: It does not work with v0.1.4 either, it spits out a couple of lines that look like java signatures and continues, but the generated json is not correct. So basically the plugin fails in a more obvious way in v1.0.2 - But I would prefer that it worked, while we can work around the provided dependency in the gradle scripts, IDEA screws up and makes it hard to deploy the project during development :(

@gigaSproule
Copy link
Owner

gigaSproule commented May 15, 2018

You are correct, it does check only runtime dependencies. Should be a simple fix, but just need to find the time (hopefully tomorrow).

@cpoulsen-dezide
Copy link
Author

Thank you for the quick reply! I hope it is an easy fix. I'm on vacation until next week, so do not rush it for my sake ;)

@UnAfraid
Copy link

UnAfraid commented May 16, 2018

I am having the exact same issue with 1.0.2 still doesn't resolves my dependencies properly when using compileOnly project(':MyProject') it fails with NoClassDefFoundError
If i switch it over to compile it works fine, but i don't want to shadow 'MyProject' inside the jar

Caused by: java.lang.NoClassDefFoundError: com/github/unafraid/plugins/AbstractDBPlugin
Caused by: java.lang.ClassNotFoundException: com.github.unafraid.plugins.AbstractDBPlugin
at com.benjaminsproule.swagger.gradleplugin.reader.JaxrsReader.read(JaxrsReader.groovy:97)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at com.benjaminsproule.swagger.gradleplugin.reader.JaxrsReader.read(JaxrsReader.groovy:71)
at com.benjaminsproule.swagger.gradleplugin.reader.JaxrsReader.read(JaxrsReader.groovy:65)
at com.benjaminsproule.swagger.gradleplugin.reader.ClassSwaggerReader$read.call(Unknown Source)
at com.benjaminsproule.swagger.gradleplugin.docgen.AbstractSwaggerLoader.loadDocuments(AbstractSwaggerLoader.groovy:31)
at com.benjaminsproule.swagger.gradleplugin.docgen.AbstractSwaggerLoader$loadDocuments.call(Unknown Source)
at com.benjaminsproule.swagger.gradleplugin.GenerateSwaggerDocsTask.processSwaggerPluginExtension(GenerateSwaggerDocsTask.groovy:73)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at com.benjaminsproule.swagger.gradleplugin.GenerateSwaggerDocsTask.generateSwaggerDocuments(GenerateSwaggerDocsTask.groovy:52)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:788)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:755)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:124)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:113)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:95)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:66)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:256)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:249)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:238)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:663)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:597)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
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)

@gigaSproule gigaSproule added this to the 1.0.3 milestone May 17, 2018
@gigaSproule
Copy link
Owner

The fix is trivial, just creating tests to prove the issue and then can prove the fix

@UnAfraid
Copy link

Sounds great!
Thanks for the fast response

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants