Cyclic dependencies during multi-module compilation
Nicolai Parlog
nipa at codefx.org
Tue May 8 10:16:58 UTC 2018
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