Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven依赖于并行项目,而不是模块。_Maven_Dependencies - Fatal编程技术网

Maven依赖于并行项目,而不是模块。

Maven依赖于并行项目,而不是模块。,maven,dependencies,Maven,Dependencies,我有以下maven项目(注意:maven项目,而不是maven模块)。我知道我会收到问题,为什么不模块,但它有自己的故事,无论如何 myproj公共(JAR), myproj核心(JAR), myproj-product1-batch(EAR), myproj-product2-batch(EAR) myproj core依赖于myproj common,myproj-product1-batch依赖于myproj core。 如果是模块,我可以简单地创建依赖项。如果它是标准存档,我还可以创建依

我有以下maven项目(注意:maven项目,而不是maven模块)。我知道我会收到问题,为什么不模块,但它有自己的故事,无论如何

myproj公共(JAR), myproj核心(JAR), myproj-product1-batch(EAR), myproj-product2-batch(EAR)

myproj core依赖于myproj common,myproj-product1-batch依赖于myproj core。 如果是模块,我可以简单地创建依赖项。如果它是标准存档,我还可以创建依赖项,并在存储库中提供JAR,如果它是库JAR,我可以…布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉

我无法得到
C:\Documents and Settings\users\myproj common\target\myproj-common-0.0.1-SNAPSHOT.jar
作为一个依赖项插入到下面的jar中
C:\Documents and Settings\users\myproj core\target\myproj-core-0.0.1-SNAPSHOT.jar

把罐子放进耳朵也有同样的问题


有什么想法吗?如何…希望有一个小的、快速的、令人惊讶的解决方案,只是我看不到。

我看不出有任何理由不能使用
mvn install
将这些jar和ear安装到本地存储库中。然后,您可以将它们作为依赖项包含在任意位置

我怀疑您是否能够干净地让maven将一个jar放在文件系统中的任何位置,而不是本地存储库中

为了澄清这一点,当您进行
mvn安装时
会将您的JAR放入目标文件夹,但也会将其放入本地存储库(默认情况下,Windows中的C:\Documents And Settings\.m2)。在安装了该JAR之后,您可以在pom中使用“dependencies”块将该JAR作为maven依赖项包含在其他项目中,如下所示:

<dependencies>
    <dependency>
      <groupId>group-a</groupId>
      <artifactId>artifact-a</artifactId>
      <version>1.0</version>
    </dependency>
</dependencies>

a组

此外,您还需要告诉maven将所有依赖项打包到JAR中。您可以通过将此添加到POM中来实现这一点。(同时检查此问题以了解此代码块的源代码)


maven汇编插件
带有依赖项的jar
组装
包裹
单一的

当我运行mvn安装时,它会将jar生成到目标文件夹中,但我无法将公共jar包含到核心jar中。我认为有一种方法可以从系统上的任何地方获取JAR,在本例中是在另一个maven项目的目标文件夹中。另外,当你说安装到本地存储库时,我没有得到那个部分,我的loacl repo中只有我放入依赖项后下载的JAR。这是我的pom内容,来自core

com.myorg.myproj
myproj common

0.0.1-SNAPSHOT
@questionaire请发布maven在您尝试包含该依赖项时给您的错误(同时,我假设该块来自您的核心项目的pom?). 另外,请检查您的本地存储库,以确保公共JAR确实存在。我确实在存储库中看到了myproj-common.JAR,当我使用myproj-core时没有错误,它确实生成了myproj-core.JAR,但没有myproj-common.JAR。是的,我注意到您发布了一些指导原则,非常感谢,我仍在努力解决它。
<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <configuration>
     <descriptorRefs>
      <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
  </configuration>
  <executions>
    <execution>
      <id>make-assembly</id> <!-- this is used for inheritance merges -->
      <phase>package</phase> <!-- bind to the packaging phase -->
      <goals>
        <goal>single</goal>
      </goals>
    </execution>
  </executions>
</plugin>