私は以下の問題があります。私の監督の下にないたくさんの外部ジャーのあるディレクトリがあるとします。これらのjarファイルは、今libディレクトリMavenは複数のjarファイルを1つの依存ファイルにインポートします
lib
|_folder1
| |_jar1.jar
| |_jar2.jar
|_folder2
| |_jar3.jar
|_jar4.jar
にライブラリの新しいバージョンが、私は自分のアプリケーションに統合する必要があるlibフォルダのコピーを持ってリリースされるたびに保存されます。
新しいプロジェクトやライブラリの変更を開始するたびに、無数のジャーを統合したくないので、私は多分、それらのすべてのジャーをホストされている1つのライブラリ私のローカルのMavenリポジトリによって。
したがって、ディレクトリ全体をクロールしてすべてのjarファイルを検索し、ローカルリポジトリにインストールするスクリプトを作成することをお勧めします。
SET @libPath="C:\path\to\lib"
SET @groupId="group.id.custom.lib"
SET @artifactId="custom-lib"
SET @version="1.0"
SET @packaging="jar"
for /r %@libPath% %%i in (*.jar) do mvn install:install-file^
-Dfile="%%i"^
-DgroupId=%@groupId%^
-DartifactId=%@artifactId%^
-Dversion=%@version%^
-Dpackaging=%@packaging%
アイデアはちょうど私のpom.xmlファイルに依存関係を追加し、それを行うことが持っているだろう:
<dependency>
<groupId>group.id.custom.lib</groupId>
<artifactId>custom-lib</artifactId>
<version>[1.0,)</version>
</dependency>
ここ
は、スクリプトの最初のバージョンは次のようになります
スクリプトはすべてのファイルをクロールしますが、見つかったjarファイルのみをローカルのリポジトリに置き、以前にインストールされたjarファイルを上書きします。
スクリプトの助けを借りてこれを達成する方法があるかどうかです。
挨拶
[編集:]エセックス少年のコメントの後、私はこれに私のスクリプトを適応してきました:動作しているようだ
SET @libPath="C:\path\to\lib"
SET @groupId="group.id.custom.lib"
SET @artifactId="custom-lib"
SET @version="1.0"
SET @packaging="jar"
SET @tempDir="C:\Temp\temp-dir"
SET @tempJar="temp.jar"
if not exist %@tempDir% mkdir %@tempDir%
cd %@tempDir%
del *.* /f /q
for /r %@magicDrawLib% %%i in (*.jar) do copy %%i %@tempDir%
for /r %@tempDir% %%j in (*.jar) do jar -xvf %%j del %%j
jar -cvf %@tempJar% *
mvn install:install-file^
-Dfile=%@tempJar%^
-DgroupId=%@groupId%^
-DartifactId=%@artifactId%^
-Dversion=%@version%^
-Dpackaging=%@packaging%
。私はそれを検証するために結果のMaven依存関係をテストする必要があります。
あなたの回答をありがとうございます。もちろん、既存のjarファイルを別のものに上書きするのは悪い考えです。これがスクリプトが機能しない理由です(私はこのことを明確にしていないとすみませます。最初の投稿)。しかし、この情報は、すべてのjarファイルを1つのMaven依存ファイルにまとめるのに役立たないようです。 – Scyla101
あなたの質問を誤解して申し訳ありません、なぜあなたは、各jarを一時ディレクトリにコピーし、explode(jar xvf %% ii)してからそれを削除してから新しいjar(jar cvf temp.jar * )そして、あなたのmavenリポジトリにtemp、jarファイルを追加します。 –
返事をありがとう。私は働いていると思われるスクリプトで質問を更新しました。たぶん、私はあなたに適切なクレジットを与えることができるようにあなたの答えを更新することができます。 – Scyla101