问题描述
|
我猜我实际上并没有做太多事情,因为我遇到了一个奇怪的问题。我试图从现有的Java项目中生成一个JAR,然后将其放入Spring Maven项目中。我确信我正确地包含了它,在获得第三方3D JAR之前,我已经做了很多次了(尽管它是一个Maven项目,但我在其中包含了一些晦涩的JAR并放在了buildpath中,等等),我的Eclipse中的JAR表现得很好,好像包含了它,我有一个测试类,它从JAR导入一个类,实例化它,等等,并且没有显示任何错误(在IDE中可以很好地导入,等等),但是,当我去做一个Maven安装我得到:
[ERROR] /media/src/main/java/org/jadefalcon/automation/DataSetup/test.java:[11,15] package org.test does not exist
[ERROR] /media/src/main/java/org/jadefalcon/automation/DataSetup/test.java:[21,2] cannot find symbol
我已经尝试过进行Maven清理,但仍然是相同的问题,我正在测试的JAR类是这样的:(正在尝试更复杂的一个,但随后尝试对此进行故障排除)
package org.test;
public class something {
public String main () {
return \"it is definitely working fine\";
}
}
这是我生成的JAR(可见的来源):
https://docs.google.com/leaf?id=0BzB_xvrbRpbYODQyMjEzOWetoTdjNS00YjM3LTlkZGUtNjY5NmIwN2RiNTRj&hl=zh-CN
我将不胜感激,对此我感到困惑和沮丧,我将不胜感激。谢谢
解决方法
您可以在您的maven项目中添加一个\ regular \ jar-就像您描述的那样-尽管这不是最佳实践,主要是因为那样的话您甚至不会失去该jar的Maven功能,而且Maven依赖管理:您必须在源中包含该jar才能进行构建。
当然,您也可以为该jar创建一个Maven工件,使用Maven进行构建,使用Maven进行安装,并将其用作常规Maven依赖项。
您还可以创建一个父.pom并将依赖项项目作为模块包含在其中,也可以将您的真实应用程序(或者您的真实应用程序可以作为您的父母)作为模块。在这里进一步查看。
,由于这引起了我很大的悲伤,我认为应该发布找到的解决方案。显然,您不应该在Maven项目中仅包含常规lib JAR(尽管我发誓我以前做过并且可以工作),但我发现这种方式包括了一个本地JAR,它不是从这个帖子:
是否可以在不安装jar的情况下将jar添加到maven 2 build classpath?
我做到了,它正确地进行了Maven安装(其中版本和artifactID仅是值)
<dependency>
<groupId>org.test</groupId>
<artifactId>test</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/testjar.jar</systemPath>
</dependency>