質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

受付中

Mavenでインストールするjarファイル名にバージョンを含めたくない

plue
plue

総合スコア69

JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

1回答

0評価

0クリップ

418閲覧

投稿2022/03/29 07:39

編集2022/03/31 11:37

jarファイルをファイル名そのままにローカルのMavenにインストールしたいと思っています。
環境は

  • OS:Windows10 Pro
  • Maven: バージョン3.8.3

にて、以下のコマンドを実行

mvn install:install-file -DgroupId=com.hoge -DartifactId=fuga -Dversion=1.0.0 -Dpackaging=jar -Dfile=./fuga.jar

その結果、

C:\Users\myuser\.m2\repository\com\hoge\fuga\1.0.0\fuga-1.0.0.jar

が作成されましたが、

fuga-1.0.0.jar

の部分は

fuga.jar

のままとしてインストールしたいです。
そのような方法はありますでしょうか?
-Dversion=は省略できないようなので、方法がわからず困っています。

pom.xmlへの依存関係の記載は以下の通りです。

<dependencies> <dependency> <groupId>com.hoge</groupId> <artifactId>fuga</artifactId> <version>1.0.0</version> </dependency> </dependencies>

宜しくお願い致します。

ちなみにjarファイルを変えたくない理由として、
提供されているfuga.jarはファイル名を変更すると利用できなくなるという制約があるためです。


[追記]ライブラリ名が変更された状態でライブラリに含まれるクラスのインスタンス生成をしようとした際に出力される例外を載せます。

java.lang.Error: Illegal library file name [C:\AnypointStudio\plugins\org.mule.tooling.server.4.4.0.ee_7.11.0.202203031822\mule\apps\ydl-sys-svf-api\repository\jp\co\fit\vfreport\svfrclient\1.0.0\svfrclient-1.0.0.jar] at jp.co.fit.vfreport.client.FileLocator.getJavaLibraryPath(FileLocator.java:97) at jp.co.fit.vfreport.client.SvfrProperties.getBuildNumber(SvfrProperties.java:616) at jp.co.fit.vfreport.client.SvfrProperties.<clinit>(SvfrProperties.java:23) at jp.co.fit.vfreport.SvfrClient.<init>(SvfrClient.java:22) at jp.co.fit.vfreport.SvfrClient.<init>(SvfrClient.java:35)

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

m.ts10806

2022/03/29 11:13

pom.xmlの設定も提示してください。
plue

2022/03/29 11:46 編集

コメントありがとうございます。 pom.xmlへの依存関係の記載は以下の通りです。 ``` <dependencies> <dependency> <groupId>com.hoge</groupId> <artifactId>fuga</artifactId> <version>1.0.0</version> </dependency> </dependencies> ``` また、`piyo.jar`としておりましたが、`fuga.jar`の誤りだったため、訂正させていただいております。
m.ts10806

2022/03/29 11:39

コードになるので質問本文に提示してもらえればと。
plue

2022/03/29 11:46

本文のほうに追記いたしました。
nukasa

2022/03/30 02:30

そもそもの動機は何ですか。JARのファイル名にバージョン番号がついていると、どういう不都合があるのですか。
plue

2022/03/30 02:38

質問本文にも少し書いていますが、今回提供されて使用しようとしているfuga.jarはインスタンス生成時にファイル名をチェックしているらしく、元のファイル名から変更されていると例外を投げる仕様となっていようです(fuga.jarは外部の製品のためこの仕様の変更は不可)。 そのため、バージョンを付与しないファイル名で使用したいのです。
nukasa

2022/03/30 08:15

クラスローダーで読み込まれたJARのファイル名をチェックするというのは、事実上不可能です。 おそらく、読み込んだクラスのバージョンをチェックしているものと思います。 「元のファイル名から変更されていると例外を投げる」ときの、エラーメッセージとスタックトレースを追加してらもえますか。
plue

2022/03/31 02:37

メッセージは出力されないため、スタックトレースを載せました。 宜しくお願い致します。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。