繁体   English   中英

Java项目对另一个项目的依赖

[英]Java project dependency on another project

我有一个Maven项目(Proj1)。 在我的Java类中,我必须调用另一个Maven项目(proj2)的方法。

在这里,我遇到各种编译时错误,因为该方法在当前项目(proj1)中不可用。 为了解决这个问题,我采用了完整的方法代码并将该方法粘贴到当前的Java类中。 现在,该方法在我的项目中可用。 但是然后该方法再次调用了其他类中的其他代码,这些代码在我当前的项目中仍然不可用。 同样,我需要复制并粘贴其他类中的所有相关代码。 这种情况不断发生,并且存在循环依赖性,所以想知道如何解决此错误。 为了解决这个问题,我有几个选择。

  1. 从proj2中获取所有类的源,然后从其中制作一个jar,并将该jar包含在我的类路径中。 这解决了一些错误,但是第三方jar中有一些类仍然给出错误。
  2. 现在,我正在计划第二个选项,其中有用于proj2的pom.xml。 我以此为基础建立。 这样所有必需的jar都会从存储库中下载。 该项目的输出再次是名为proj2.jar的jar。

现在我的问题是

  1. 如果我在代码中仅包含proj2.jar,那么它将解决所有依赖性吗?
  2. 或者我需要手动添加proj2中存在的proj1 class-path中的所有jar
  3. 或者我需要添加proj2的src以及proj2.jar中的jar?
  4. 还是有比上述选项更好的方法呢?

让您所有的项目都使用Maven。 使用以下标头将pom.xml添加到项目的根目录(我不知道您的打包结构,因此com.sachin是占位符。您可以要求IDE为您添加maven支持):

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.sachin</groupId>
    <artifactId>Proj2</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>My Proj2</name>

Proj1添加相同的标头,并将Proj1依赖项添加到Proj2

<dependency>
    <groupId>com.sachin</groupId>
    <artifactId>Proj2</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

maven build Proj2将作为jar依赖项添加到Proj1

如果我在代码中仅包含proj2.jar,那么它将解决所有依赖性吗?

如果您的proj2.jar具有pom.xml并带有proj2.jar使用的依赖 proj2.jar -则是的,它们将在使用maven构建proj1过程中获取。

有关Maven依赖机制的官方文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM