microsoft-kiota-** dependencies have conflicting Automatic-Module-Name
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- java
- 領域
- build-system
調査の方向性
components/**/build.gradle の tasks.jar マニフェスト設定を調査し、提供された pom.xml と文書化されている jdeps コマンドを使って競合を再現します。生成された Kiota JAR が重複した com.microsoft.kiota モジュール名を生成しなくなり、jdeps が正常に完了することを確認します。
索引モデルが issue の本文から書いたものです。
説明
We use for our projects both jdeps and jlink tools to generate a slim JRE. However since the switch to com.microsoft.graph:microsoft-graph:6.4.0 (v6 of the SDK, recently released), which builds on top of the microsoft-kiota-** dependencies. We can't seem to run our jdeps command succesfully anymore.
Previously (without the microsoft-kiota-** dependencies on the class-/module path we have been using the following command; (exectued from target/)
jdeps --multi-release base --recursive --ignore-missing-deps --print-module-deps --class-path="./lib/*" --module-path="./lib/*" -quiet demo-0.0.1-SNAPSHOT.jar
Which would list something like this; java.base,spring.boot,spring.boot.autoconfigure,spring.context,spring.core
Note: When running this on a Windows machine, be sure to change ./lib/* to ./lib (as there is an issue with the * wildcard.
Howafter after switching to com.microsoft.graph:microsoft-graph:6.4.0 we not get the following exception when we run the same command;
Exception in thread "main" java.lang.module.FindException: Two versions of module com.microsoft.kiota found in .\lib (microsoft-kiota-authentication-azure-1.0.4.jar and microsoft-kiota-abstractions-1.0.4.jar)
at java.base/jdk.internal.module.ModulePath.scanDirectory(ModulePath.java:295)
at java.base/jdk.internal.module.ModulePath.scan(ModulePath.java:233)
at java.base/jdk.internal.module.ModulePath.scanNextEntry(ModulePath.java:191)
at java.base/jdk.internal.module.ModulePath.findAll(ModulePath.java:167)
at jdk.jdeps/com.sun.tools.jdeps.JdepsConfiguration$Builder.build(JdepsConfiguration.java:558)
at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.buildConfig(JdepsTask.java:607)
at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:561)
at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:537)
at jdk.jdeps/com.sun.tools.jdeps.Main.main(Main.java:50)
A quick look here in the repository shows me that all components/**/build.gradle files are containing this piece of code;
tasks.jar {
manifest {
attributes('Automatic-Module-Name': project.property('mavenGroupId'))
}
}
So the Automatic-Module-Name is set to an unique value, which isn't correct in my opinion. Might be better to use the artifactId here maybe? But that is up to you guys ;)
Following pom.xml file can be used to simulate this issue. Note the maven-dependency-plugin which copies all the dependencies (on mvn install) to target/lib for easier testing with the command.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>21</java.version>
<microsoft-graph.version>6.4.0</microsoft-graph.version>
<azure-identity.version>1.11.2</azure-identity.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.microsoft.graph</groupId>
<artifactId>microsoft-graph</artifactId>
<version>${microsoft-graph.version}</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>${azure-identity.version}</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
- 主要言語
- Java
- スター
- 38
- フォーク
- 35
- 平均マージ
- 15時間 3分
- マージ済み PR(30日)
- 18
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
microsoft/kiota-java のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
microsoft/kiota-java#2127 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 38/100
microsoft/kiota-java#2000 ·
メンテナーはふだん 1 日以内に返信
-
upgrade to okhttp 5対応中かも @ramsessanchez が 87 日前に担当しました。 オープンenhancement help wanted
難易度 3/5 1〜2日 初心者へのやさしさ 48/100
microsoft/kiota-java#1984 · コメント 10 件 · リアクション 2 件 ·
メンテナーはふだん 1 日以内に返信
-
Needs: Attention :wave: type:question
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
microsoft/kiota-java#1928 · コメント 6 件 ·
メンテナーはふだん 1 日以内に返信
-
http - implement body inspection handler再び着手できるかも @Nikk8091 が 40 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンenhancement help wanted type:enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
microsoft/kiota-java#1685 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
microsoft/kiota-java の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
objectionary/eo-graphs#80 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
-
enhancement good first issue
難易度 2/5 半日 初心者へのやさしさ 66/100
apache/fineract-consumer-facing#175 ·
メンテナーはふだん 1 日以内に返信
-
[BUG] 订单:会员凭订单号即可取消其他会员的待付款订单(取消接口不校验订单归属)対応中かも @dadiyang が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
macrozheng/mall#1016 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100