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

pst*_*ton 2 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
Run Code Online (Sandbox Code Playgroud)

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

sbl*_*ndy 5

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

要使用系统依赖关系,只需为要添加的每个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>
Run Code Online (Sandbox Code Playgroud)

如果您坚持更改位置和编译时间,则可以使用-D jvm属性.

将它们添加到本地仓库有点痛苦,但更长远的解决方案.