Cyclic dependencies during multi-module compilation

Zheka Kozlov orionllmain at gmail.com
Tue May 8 10:33:27 UTC 2018


Sorry. I switched to the branch and now I see the issue. Looks like a bug
for me.

2018-05-08 17:16 GMT+07:00 Nicolai Parlog <nipa at codefx.org>:

> Here it is:
>
>         https://github.com/CodeFX-org/demo-jpms-monitor/blob/break-
> cyclic-dependency-compile-time/monitor.statistics/src/
> main/java/module-info.java#L3
>
> Maybe you looked at the master branch?
>
>
>
> On 08.05.2018 12:11, Zheka Kozlov wrote:
> > Are you sure that you have a cycle between modules? You state that
> > "monitor.statistics depends on monitor.persistence", however I do not see
> > this in module-info.java:
> >
> > module monitor.statistics {
> > requires monitor.observer;
> > exports monitor.statistics;
> > }
> >
> >
> > 2018-05-08 16:34 GMT+07:00 Nicolai Parlog <nipa at codefx.org>:
> >
> >>  Hi Zheka,
> >>
> >> this branch demonstrates what I describe:
> >>
> >>         https://github.com/CodeFX-org/demo-jpms-monitor/tree/break-
> >> cyclic-dependency-compile-time
> >>
> >> Run `multi-compile.sh && run.sh` and you will see the compiler happily
> >> creating the modules whereas the runtime complains about the cyclic
> >> dependency. Maybe I'm doing something weird without noticing? (I tried
> >> it on 9.0.1, 9.0.4, 10, and 11-ea+7.)
> >>
> >>  so long ... Nicolai
> >>
> >>
> >>
> >> On 08.05.2018 11:05, Zheka Kozlov wrote:
> >>> Hi Nicolai.
> >>>
> >>> I cannot reproduce what you said. I'm using JDK 10.0.1. I created two
> >>> modules moduleA and moduleB which require each other. When I tried to
> >>> compile, javac failed with an error: cyclic dependence involving
> module.
> >>>
> >>> Do you observer a different behavior?
> >>>
> >>> 2018-05-08 15:01 GMT+07:00 Nicolai Parlog <nipa at codefx.org>:
> >>>
> >>>>  Hi!
> >>>>
> >>>> In early access builds, multi-module compilation would fail if there
> was
> >>>> a dependency cycle between the involved modules. I just realized that
> >>>> that is no longer the case in 9.0.1 and later (up to Java 11).
> >>>>
> >>>> I'm interested to learn the background for that decision? I considered
> >>>> that check A Good Thing - why was it removed?
> >>>>
> >>>>  so long ... Nicolai
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>>
> >>>> PGP Key:
> >>>>     http://keys.gnupg.net/pks/lookup?op=vindex&search=
> >> 0xCA3BAD2E9CCCD509
> >>>>
> >>>> Web:
> >>>>     http://codefx.org
> >>>>         a blog about software development
> >>>>     https://www.sitepoint.com/java
> >>>>         high-quality Java/JVM content
> >>>>     http://do-foss.de
> >>>>         Free and Open Source Software for the City of Dortmund
> >>>>
> >>>> Twitter:
> >>>>     https://twitter.com/nipafx
> >>>>
> >>>
> >>
> >> --
> >>
> >> PGP Key:
> >>     http://keys.gnupg.net/pks/lookup?op=vindex&search=
> 0xCA3BAD2E9CCCD509
> >>
> >> Web:
> >>     http://codefx.org
> >>         a blog about software development
> >>     https://www.sitepoint.com/java
> >>         high-quality Java/JVM content
> >>     http://do-foss.de
> >>         Free and Open Source Software for the City of Dortmund
> >>
> >> Twitter:
> >>     https://twitter.com/nipafx
> >>
> >
>
> --
>
> PGP Key:
>     http://keys.gnupg.net/pks/lookup?op=vindex&search=0xCA3BAD2E9CCCD509
>
> Web:
>     http://codefx.org
>         a blog about software development
>     https://www.sitepoint.com/java
>         high-quality Java/JVM content
>     http://do-foss.de
>         Free and Open Source Software for the City of Dortmund
>
> Twitter:
>     https://twitter.com/nipafx
>


More information about the jigsaw-dev mailing list