如何在不部署jar的情况下在Maven中配置子项目依赖?

2023-12-28

我用谷歌搜索了这个,似乎没有人有答案,但这似乎是一件基本的事情,它应该是可能的。

我有以下项目结构:

parent
   ---sub-project1
   ---sub-project2

sub-project2 需要有 sub-project1 作为依赖项。

所以我在 sub-project2 的 pom 中有这个:

 <dependencies>
    <dependency>
         <artifactId>sub-project1</artifactId>
        <groupId>mygroup</groupId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

....

当我这样做时,Maven 尝试下载 sub-project1.jar 文件,该文件不存在,因为它尚未准备好用于存储库。

我试着放一个<scope>import</scope>在依赖关系中,但这也不起作用——结果相同。

那么我需要做什么才能让 Maven 在构建 sub-project2 时查看 sub-project1 呢?

EDIT以下是一些 pom 片段:

Parent:

<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>
   <prerequisites>
      <maven>2.0.9</maven>
   </prerequisites>
   <modules>
    <module>sub-project1</module>
    <module>sub-project2</module>
   </modules>
 ....

子项目1:

<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/xsd/maven-4.0.0.xsd">
  <parent>
    <artifactId>parent</artifactId>
    <groupId>mygroup</groupId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>

  <artifactId>sub-project1</artifactId>
....

子项目2:

<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/xsd/maven-4.0.0.xsd">
  <parent>
    <artifactId>parent</artifactId>
    <groupId>mygroup</groupId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>

   <artifactId>sub-project1</artifactId>

    <dependencies>
     ....
       <dependency>
          <artifactId>sub-project2</artifactId>
          <groupId>mygroup</groupId>
          <version>1.0-SNAPSHOT</version>
          <scope>import</scope>
      </dependency>
  </dependencies>

当我得到时我收到的错误mvn clean install在父级上是:

[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure

有很多类/包未找到错误


您应该有一个父级别的主 pom,您将在其中列出项目的模块。

  <modules>
    <module>sub-project1</module>
    <module>sub-project2</module>>
  </modules>

在每个子项目中,您必须引用您的父项目:

<parent>
    <artifactId>parent</artifactId>
    <groupId>mygroup</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>

并且您可以像以前一样指定项目之间的依赖关系。我认为您错过了我描述的一些步骤。

编辑:你应该发布你的mvn 干净安装在家长层面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不部署jar的情况下在Maven中配置子项目依赖? 的相关文章

随机推荐