如何在另一个Java项目中使用整个Java项目并实例化和使用类和方法?

问题描述 投票:0回答:1

[我遇到了一个情况,我有一个行家专家,其中有几个方面和方法...我需要在需要它们的其他一些项目中使用相同的项目类和方法。

阅读了一些有关Git子模块和Git子树的信息,以及完成它的其他方法之后。我决定导出具有相关性的Jar文件,然后将其复制到“ $ {basedir} / lib /”子目录中的所有其他项目中。这样,对于QA团队中的所有开发人员来说,它就足够简单(我们不是经验丰富的开发人员,因为我们来自QA界),而且我可以控制他们在所有项目中使用相同的库。

我使用组装Maven插件导出到Jar文件,并将其添加到第一个存储库中的我的POM文件中:

        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>fully.qualified.MainClass</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
        </plugin>

正在运行

$ mvn clean compile assembly:single

我在'target'目录中有Jar文件,该文件已复制到所有其他存储库。在每个存储库的“ lib”目录中。

然后在其他仓库的POM文件中添加到其POM依赖项部分:

<dependency>
    <groupId>myDep</groupId>
    <artifactId>myDep</artifactId>
    <version>1.0-SNAPSHOT</version>
    <scope>system</scope>
    <systemPath>${basedir}/lib/myDep-1.0-SNAPSHOT-jar-with-dependencies.jar</systemPath>
</dependency>

事实是我无法弄清楚如何在我的类中导入Jar,以使用我从此导入的Jar中需要的方法。当我尝试导入喜欢

import myDep.* 

但是它不起作用。

您能指出我正确的方向吗?非常感谢!

java maven jar maven-assembly-plugin
1个回答
0
投票

通常,在开始使用Maven之前,您已经建立了一些基础结构:

  1. 用于工件(震击,战争等)的Nexus或Artifactory服务器

  2. 一个类似Jenkins的构建服务器。

然后您用mvn clean deploy在Jenkins上构建jar(没有maven程序插件之类的东西)。然后它们可以在Nexus / Artifactory中使用。

如果开发人员的settings.xml指向正确的Nexus / Artifactory,则只需添加

<dependency>
    <groupId>myDep</groupId>
    <artifactId>myDep</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

到他们的pom.xml,而不指定任何路径或在周围复制任何内容。然后,Maven将竭尽全力解决Nexus / Artifactory对这种依赖性的问题。

© www.soinside.com 2019 - 2024. All rights reserved.