如何在 Maven 中包含加载其他罐子的罐子?
How to include jars that load other jars in maven?
我正在 NetBeans 中开发一个 Java 应用程序并使用 maven 作为依赖项。我在一个文件夹中有一堆罐子。这些罐子加载位于它们已知路径中的其他罐子。在我看来,当我在 Maven 中加载本地 jar 时,它实际上是将 jar 复制到另一个位置。问题是移动的罐子再也找不到其他罐子了,因为现在它们罐子的相对路径被破坏了。
是否可以以不将包含的罐子从其原始位置移动的方式使用 Maven,以便他们可以找到其他罐子?或者如果这是不可能的,有没有办法给 Maven 一个包含子文件夹的整个文件夹,如果 Maven 移动整个文件夹,它也会移动所有子文件夹和里面的罐子?
我不确定我是否足够清楚。我也是 Maven 的新手。在我看来ant在这方面比较灵活
编辑:看了评论,好像不是很清楚。基本上,我工作的公司有两个应用程序,它们共享一些使用 URLClassLoader 加载其他 jar 的公共 jar。我不想再次分发这些通用 jar,我希望我的第二个应用程序从我的第一个应用程序放置它们的位置找到并加载这些 jar。我通过使用 maven 导入一个使用 URLClassLoader 的 jar 和硬编码路径来加载其他 jar 找到了解决方案。
我有一个模块,其 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>
就我而言,这对我很有帮助。
P.S。但这将导致整个第一个项目被添加为依赖项。所以也许这不是您的完美解决方案。
我正在 NetBeans 中开发一个 Java 应用程序并使用 maven 作为依赖项。我在一个文件夹中有一堆罐子。这些罐子加载位于它们已知路径中的其他罐子。在我看来,当我在 Maven 中加载本地 jar 时,它实际上是将 jar 复制到另一个位置。问题是移动的罐子再也找不到其他罐子了,因为现在它们罐子的相对路径被破坏了。 是否可以以不将包含的罐子从其原始位置移动的方式使用 Maven,以便他们可以找到其他罐子?或者如果这是不可能的,有没有办法给 Maven 一个包含子文件夹的整个文件夹,如果 Maven 移动整个文件夹,它也会移动所有子文件夹和里面的罐子? 我不确定我是否足够清楚。我也是 Maven 的新手。在我看来ant在这方面比较灵活
编辑:看了评论,好像不是很清楚。基本上,我工作的公司有两个应用程序,它们共享一些使用 URLClassLoader 加载其他 jar 的公共 jar。我不想再次分发这些通用 jar,我希望我的第二个应用程序从我的第一个应用程序放置它们的位置找到并加载这些 jar。我通过使用 maven 导入一个使用 URLClassLoader 的 jar 和硬编码路径来加载其他 jar 找到了解决方案。
我有一个模块,其 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>
就我而言,这对我很有帮助。 P.S。但这将导致整个第一个项目被添加为依赖项。所以也许这不是您的完美解决方案。