新しい Spring Web アプリを作成しました。Maven を使用してビルド/依存関係を処理したいと考えています。私の問題は、プロジェクトがいくつかの既存のローカル プロジェクトに依存しており、それらを mavenizing することは現在オプションではないということです。これらのプロジェクトを Mavenize せずに依存することは可能ですか?
3 に答える
これを行う最も簡単な方法は、ローカル依存関係をローカルリポジトリにデプロイして、mavenが通常の依存関係として使用できるようにすることだと思います。
jar
ローカルファイルをローカルリポジトリにデプロイするには、次のようなコマンドラインを使用します。
mvn install:install-file -Dfile=<MY-FILE> -DgroupId=MY-GROUP-ID -DartifactId=MY-ARGIFACT -Dversion=MY-VERSION -Dpackaging=jar
社内にArtifactoryのような共有リポジトリがある場合は、そこにjarをデプロイできます。そうしないと、各開発者は自分のローカルリポジトリにデプロイする必要があります。良いニュースは一度だけ行う必要があります。
編集。
プロジェクト間の依存関係をに定義する方法は次のとおりです。pom.xml
<dependency>
<groupId>com.mycompany.util</groupId>
<artifactId>util</artifactId>
<version>${com.mycompany.version}</version>
</dependency>
それでおしまい。Utilは、私のワークスペースへのもう1つのプロジェクトです。
いいえ、試してはいけません。Maven の主な目標は、標準化されたビルドを持つことです。これが Maven を非常に使いやすくしている理由です。例外は標準ではありません。そのため、Maven では、すべての依存関係が典型的な Maven 形式 (POM + jar) である必要があります。
「Maven化は現在オプションではありません」と言うとき、基本的に「Mavenは現在オプションではありません」と言います。私の経験では、既存のプロジェクトをMavenに変換するのに数分しかかかりません...ただし、そのプロジェクトが面倒で信頼性の低いビルドプロセスを使用している場合を除きます。その場合、貴重な時間をさらに無駄にするのをやめるためだけに、できるだけ早くMavenに変換する必要があります. :-)
他のすべてが失敗した場合は、ビルド サーバーを使用して依存プロジェクトから JAR ファイルを生成し、それらを会社全体のリポジトリ サーバーまたはローカル マシンに展開します。
この回答は少し遅れていますが、誰かがそれを必要とする場合に備えて、Maven のBuild Helper Pluginを使用して解決策を見つけました。つまり、Maven 以外のプロジェクトを jar としてデプロイしたくない場合です。
したがって、基本的には、Maven 以外のプロジェクトのソース ディレクトリを<sources>
タグに追加するだけです。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>C:\Users\user123\eclipse-workspace\my_non_maven_project\src</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
その非 Maven プロジェクトに独自の依存関係がある場合は、それらを<dependencies>
Maven プロジェクトのセクションにも追加する必要があります。