Resolving requires in module-info.java with Custom Configurations in Gradle

preview_player
Показать описание
---

If anything seems off to you, please feel free to write me at vlogize [AT] gmail [DOT] com.
---

The Problem

The specific error arises while defining a custom configuration in a Gradle project. For example, consider the following build configuration that customizes the source set for a PostgreSQL JDBC driver:

[[See Video to Reveal this Text or Code Snippet]]

[[See Video to Reveal this Text or Code Snippet]]

Understanding the Issue

Gradle DSL and Declaration Order

A key point to bear in mind is that Gradle's Domain Specific Language (DSL) is sensitive to the sequence in which elements are declared. In the problematic setup, the sourceSets block was defined after the dependencies block. When Gradle evaluated the dependencies, it only had access to the explicitly defined driver configuration and the implicit default configuration.

SourceSet Mapping

Additionally, a second issue surfaced: the driver source set was unintentionally mapped to the main source set. This occurred because, by default, if the main source set is not explicitly declared, Gradle assumes its existence, pointing to src/main/java. If your driver source set is also mapped to the same directory, IntelliJ would not recognize the distinction between them, leading to unresolved dependencies.

The Solution

To effectively resolve both issues, you need to take the following steps:

Step 1: Rearranging the Code Structure

[[See Video to Reveal this Text or Code Snippet]]

Step 2: Creating a Unique Source Directory

To avoid mapping conflicts, adjust the source directory of the driver source set to be distinct from the default main source set:

Move your Java source files to src/driver/java.

Update the driver configuration as follows:

[[See Video to Reveal this Text or Code Snippet]]

Conclusion

Now, IntelliJ will not only parse your setup correctly but also provide full support for your PostgreSQL driver requests. Happy coding!
Рекомендации по теме
join shbcf.ru