You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "Dawid Weiss (Jira)" <ji...@apache.org> on 2021/11/26 18:21:00 UTC

[jira] [Commented] (LUCENE-10267) Gradle does not write module version attribute for modules with zero dependencies

    [ https://issues.apache.org/jira/browse/LUCENE-10267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17449653#comment-17449653 ] 

Dawid Weiss commented on LUCENE-10267:
--------------------------------------

Gradle uses javac's "--module-version" option to embed module version passed via options.javaModuleVersion. But this option is not passed to the compile unless there is at least one dependency (classpath/ module path entry). This is easily demonstrated by a simple attached project. If you run it out of the box, it shows module version embedded in the output:
{code}
>gradlew clean jar && java --module-path build\libs --describe-module foo

> Task :compileJava
Setting module version to: 1.0.0

BUILD SUCCESSFUL in 972ms
3 actionable tasks: 3 executed
foo@1.0.0 file:///C:/_tmp/test/build/libs/test-1.0.0.jar
exports foo
requires java.base mandated
{code}

but if you comment out the single dependency:
{code}
dependencies {
  // api "org.slf4j:slf4j-api:2.0.0-alpha5"
}
{code}

and re-run it, the version is gone:
{code}
>gradlew clean jar && java --module-path build\libs --describe-module foo

> Task :compileJava
Setting module version to: 1.0.0

BUILD SUCCESSFUL in 1s
3 actionable tasks: 3 executed
foo file:///C:/_tmp/test/build/libs/test-1.0.0.jar
exports foo
requires java.base mandated
{code}

The problem is here in gradle sources:
https://github.com/gradle/gradle/blob/master/subprojects/language-java/src/main/java/org/gradle/api/internal/tasks/compile/JavaCompilerArgumentsBuilder.java#L277-L284

I think the condition there should actually look at inferModulePath and, if module version is set, always add that option to javac.

> Gradle does not write module version attribute for modules with zero dependencies
> ---------------------------------------------------------------------------------
>
>                 Key: LUCENE-10267
>                 URL: https://issues.apache.org/jira/browse/LUCENE-10267
>             Project: Lucene - Core
>          Issue Type: Sub-task
>            Reporter: Dawid Weiss
>            Priority: Minor
>




--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org