SpencerPark / IJava

A Jupyter kernel for executing Java code.
MIT License
1.07k stars 211 forks source link

The %%loadFromPOM seems to fail when importing BOMs #139

Open kolban-google opened 1 year ago

kolban-google commented 1 year ago

I have a cell in my notebook which reads:

%%loadFromPOM

<dependency>
  <groupId>org.apache.beam</groupId>
  <artifactId>beam-sdks-java-core</artifactId>
  <version>2.43.0</version>
</dependency>

<dependency>
  <groupId>org.apache.beam</groupId>
  <artifactId>beam-runners-direct-java</artifactId>
  <version>2.43.0</version>
  <scope>runtime</scope>
</dependency>

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>2.0.6</version>
</dependency>

<dependency>
  <groupId>org.apache.beam</groupId>
  <artifactId>beam-sdks-java-io-google-cloud-platform</artifactId>
  <version>2.43.0</version>
</dependency>

When I try and run the cell, it fails with:

java.lang.RuntimeException: Exception occurred while running cell magic 'loadFromPOM': Error resolving '/tmp/ijava-ivy-11875170231687639704.xml'. [unresolved dependency: org.apache.beam#beam-sdks-java-io-google-cloud-platform;2.40.0: several problems occurred while resolving dependency: org.apache.beam#beam-sdks-java-io-google-cloud-platform;2.40.0 {compile=[compile(*), master(*)], runtime=[runtime(*)]}:
    several problems occurred while resolving dependency: com.google.cloud#libraries-bom;25.2.0 {}:
    several problems occurred while resolving dependency: com.google.cloud#google-cloud-bom;0.173.0 {}:
    several problems occurred while resolving dependency: com.google.cloud#google-cloud-billingbudgets-bom;2.1.9 {}:
    com.google.cloud#google-cloud-shared-config;1.3.2
    com.google.cloud#google-cloud-shared-config;1.3.2
    several problems occurred while resolving dependency: com.google.cloud#google-cloud-billingbudgets-bom;2.1.9 {}:
    com.google.cloud#google-cloud-shared-config;1.3.2
    com.google.cloud#google-cloud-shared-config;1.3.2
    several problems occurred while resolving dependency: com.google.cloud#google-cloud-bom;0.173.0 {}:
    several problems occurred while resolving dependency: com.google.cloud#google-cloud-billingbudgets-bom;2.1.9 {}:
    com.google.cloud#google-cloud-shared-config;1.3.2
    com.google.cloud#google-cloud-shared-config;1.3.2
    several problems occurred while resolving dependency: com.google.cloud#google-cloud-billingbudgets-bom;2.1.9 {}:
    com.google.cloud#google-cloud-shared-config;1.3.2
    com.google.cloud#google-cloud-shared-config;1.3.2
    several problems occurred while resolving dependency: com.google.cloud#libraries-bom;25.2.0 {}:
    several problems occurred while resolving dependency: com.google.cloud#google-cloud-bom;0.173.0 {}:
    several problems occurred while resolving dependency: com.google.cloud#google-cloud-binary-authorization-bom;1.0.9 {}:
    com.google.cloud#google-cloud-shared-config;1.3.2
    com.google.cloud#google-cloud-shared-config;1.3.2
    several problems occurred while resolving dependency: com.google.cloud#google-cloud-binary-authorization-bom;1.0.9 {}:
    com.google.cloud#google-cloud-shared-config;1.3.2
    com.google.cloud#google-cloud-shared-config;1.3.2
    several problems occurred while resolving dependency: com.google.cloud#google-cloud-bom;0.173.0 {}:
    several problems occurred while resolving dependency: com.google.cloud#google-cloud-binary-authorization-bom;1.0.9 {}:
    com.google.cloud#google-cloud-shared-config;1.3.2
    com.google.cloud#google-cloud-shared-config;1.3.2
    several problems occurred while resolving dependency: com.google.cloud#google-cloud-binary-authorization-bom;1.0.9 {}:
    com.google.cloud#google-cloud-shared-config;1.3.2
    com.google.cloud#google-cloud-shared-config;1.3.2]
    at io.github.spencerpark.ijava.runtime.Magics.cellMagic(Magics.java:35)
    at .(#13:1)

My supposition is that the last dependency:

<dependency>
  <groupId>org.apache.beam</groupId>
  <artifactId>beam-sdks-java-io-google-cloud-platform</artifactId>
  <version>2.43.0</version>
</dependency>

Is trying to load a BOM POM and those may not be supported.

jimmybow commented 9 months ago

try my custom gradle magic to load dependency https://github.com/jimmybow/docker-java-notebook/blob/master/data/jupyter/custom_IJava/custom.jshell

mkitti commented 9 months ago

I was able to fix this by updating Apache Ivy to 2.5.2.

https://github.com/frankfliu/IJava/pull/3