我有几个内部库,我没有/不知道如何添加到我的本地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我偷偷添加到我的项目的类路径中,以便它可以用它来编译?
答案 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有点痛苦,但更长远的解决方案。