maven编译失败,因为我有一个非maven jar

时间:2010-05-14 01:34:36

标签: maven

我有几个内部库,我没有/不知道如何添加到我的本地maven存储库。我已将它们添加到项目的类路径中,但我的maven-compile失败,说明它无法在外部jar中找到类(如预期的那样):

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project proj: Compilation failure: Compilation failure: 
dir\src\main\java\package\MyClass.java:[8,25] package blah does not exist

dir\src\main\java\package\MyClass.java:[9,25] package blah does not exist

dir\src\main\java\package\MyClass.java:[21,12] cannot find symbol
symbol  : variable Blah
location: class package.MyClass

dir\src\main\java\package\MyClass.java:[28,9] cannot find symbol
symbol  : variable Blah
location: class package.MyClass

如何告诉maven一个jar我偷偷添加到我的项目的类路径中,以便它可以用它来编译?

1 个答案:

答案 0 :(得分:5)

我不确定你是否可以在没有大量hackary的情况下访问系统类路径。您可以执行以下两个操作之一:系统范围依赖项或将其添加到本地存储库。

要使用system dependency,只需为要添加的每个jar添加一个条目。为他们提供范围“系统”并为每个范围添加<systemPath>。这样的事情。

<dependency>
  <groupId>sun.jdk</groupId>
  <artifactId>tools</artifactId>
  <version>1.5.0</version>
  <scope>system</scope>
  <systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>

如果你坚持改变位置和编译时间,你可以使用-D jvm属性。

将它们添加到local repo有点痛苦,但更长远的解决方案。