0

Project_1私は2つのプロジェクトを持っていProject_2ます。どちらのプロジェクトもMaven、Netbeansを使用しています。

このようにやっている瓶Project_1を入れたいです。Project_2

問題は、jarを含めると、コンパイル時エラーが発生しないことですが、NoClassDefFoundError実行時に例外が発生します。

ここに記載されている手順を実行してProject_1を含める場合。(Open Projectの例)。エラーは発生しません。ランタイムもコンパイル時もありません。Project_2

ここで何が欠けているのか説明してもらえますか?

アップデート

Project_2ローカルマシンにはないがローカルマシンにはあるサーバーにデプロイされていますProject_1

プロジェクトとしてのインクルードはProject_1、私のローカルマシンでテストするために行われました。Project_2

4

1 に答える 1

0

First of all, a good rule of thumb to adopt is never use the system scope and system path to pull in dependencies. In my experience there's always a better way :-)

If Project_2 depends on Project_1, then first install it's jar into the local repository:

   cd Project_1
   mvn clean install

Watch the output you'll discover the jar is placed somewhere under the following directory:

   $HOME/.m2/repository

Once this is done the jar will be available as a normal dependency to the second build

  cd Project_2
  mvn clean compile

The local repository ensures the projects are now decoupled from each other. Assuming you're using snapshot revisions of Project_1, the Project_2 build will always retrieve the latest revision built and tested.

Update

You should use a Maven repository manager to share jars between machines/teams. Recommendations are contained in the following answer:

Share jar of the module with another team

How to configure Maven to use a repository like Nexus is described in it's documentation.

As described in the deploy plugin documentation you'll need to add a distributionManagement section to your POM (detailing the repository URL) and then upload the project's jar to your repository as follows:

   cd Project_1
   mvn clean deploy
于 2012-06-05T21:00:22.647 に答える