Java项目依赖于另一个项目

时间:2016-07-27 10:38:16

标签: java maven

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

这里我得到了各种编译时错误,因为该方法在我当前的项目(proj1)中不可用。 为了解决这个问题,我采用了整个方法代码并将该方法粘贴到我当前的java类中。 现在该方法在我的项目中可用。但是,然后该方法再次调用其他类中的其他代码,这些代码在我当前的项目中再次无法使用。 我再次需要复制并粘贴其他类的所有相关代码。 这种情况一直持续下去,循环依赖就在那里,所以我想知道如何解决这个错误。 我有几个选项来解决这个问题。

  1. 从proj2获取所有类的源代码,然后在我的类路径中包含该jar 这解决了很少的错误,但是有一些来自第三方罐子的类仍然会出错。
  2. 现在我正在计划第二个选项,其中我有proj2的pom.xml。 我用它来创建构建。这样就可以从存储库中下载所有必需的jar。 这个项目的输出再次名为proj2.jar。
  3. 现在我的问题是

    1. 如果我在代码中只包含proj2.jar,那么它会解决所有依赖吗?
    2. 或者我需要在proj2
    3. 中的proj1 class-path中手动添加所有jar
    4. 或者我需要添加proj2的src以及proj2.jar的jar?
    5. 或者有没有比上面提到的选项更好的方法?

1 个答案:

答案 0 :(得分:3)

让所有项目都使用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使用< - > ,则会在构建{期间“获取它们{1}}使用maven。

关于Maven Dependency Mechanism

的官方文档