我正在NetBeans中开发一个Java应用程序,并使用maven作为依赖项。我在一个文件夹中有一堆罐子。这些罐子装载位于其已知路径中的其他罐子。在我看来,当我在maven中加载一个本地jar时,它实际上是将jar复制到另一个位置。问题是移动的罐子不能再找到其他罐子,因为现在它们的罐子的相对路径被破坏了。 有可能以这样的方式使用maven,使包含的罐子不会从原来的地方移动,这样他们就可以找到其他罐子吗?或者,如果这是不可能的,有没有办法给maven一个包含子文件夹的整个文件夹,如果maven移动整个文件夹,它还会移动所有子文件夹里面的jar? 我不确定我是否足够清楚。我也是maven的新手。在我看来,蚂蚁在这方面更灵活。
编辑:看完评论后,我似乎不是很清楚。基本上我工作的公司有两个应用程序共享一些常见的jar,用URLClassLoader加载其他jar。我不想再分发这些常见的罐子,我希望我的第二个应用程序从我的第一个应用程序放置它们的位置找到并加载这些罐子。我找到了一个解决方案,使用maven导入一个使用URLClassLoader和一个硬编码路径的jar来加载其他jar。
答案 0 :(得分:0)
我有一个模块,pom文件在开头包含这些行:
<groupId>com.domain.project</groupId>
<artifactId>MyFirstProgect</artifactId>
<packaging>jar</packaging>
<version>1.2.3-snapshot</version>
编译完这个项目之后,maven将把它放到本地存储库中(我的位于C:\ Users \ MyUser.m2 \ repository,在linux中它应该在/home/myUser/.m2/repository中的某处)
之后我可以在第二个项目中添加依赖项,如下所示:
<dependency>
<groupId>com.domain.project</groupId>
<artifactId>MyFirstProgect</artifactId>
<version>1.2.3-snapshot</version>
</dependency>
就我而言,这对我有帮助。 附:但这将导致整个第一个项目被添加为依赖项。所以这可能不适合你。