我有2个项目,即Project_1
和Project_2
。
这两个项目都是Maven
,我正在使用Netbeans。
我想在Project_1
Project_2
中加入NoClassDefFoundError
,我正在做this。
问题是当我包含jar时我没有得到任何编译时错误,但是我在运行时遇到Project_1
异常。
通过执行here所述的步骤,我在Project_2
中加入Project_2
。 (Open Project示例)。我没有得到任何错误。无论是运行时还是编译时。
请你解释一下我在这里失踪了什么?
更新
Project_1
部署在不在我本地计算机上的服务器上,但是Project_1
在我的本地计算机中。
将Project_2
纳入{{1}}作为项目已在本地计算机上进行测试。
答案 0 :(得分:0)
首先,采用一个好的经验法则是永远不要使用system scope and system path来引入依赖关系。根据我的经验,总会有更好的方法: - )
如果Project_2依赖于Project_1,那么首先将它的jar安装到本地存储库中:
cd Project_1
mvn clean install
观察输出,你会发现jar放在以下目录下的某个地方:
$HOME/.m2/repository
完成此操作后,jar将作为第二个构建的正常依赖项
cd Project_2
mvn clean compile
本地存储库确保项目现在彼此分离。假设您正在使用Project_1的快照修订版,Project_2版本将始终检索构建和测试的最新版本。
您应该使用Maven repository manager在机器/团队之间共享jar。建议包含在以下答案中:
Share jar of the module with another team
如何配置Maven以使用像Nexus这样的存储库,其中描述了documentation。
如deploy plugin documentation中所述,您需要将 distributionManagement 部分添加到POM(详细说明存储库URL),然后将项目的jar上传到存储库,如下所示:< / p>
cd Project_1
mvn clean deploy