如何在不部署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中配置子项目依赖? 的相关文章

  • 模块参数权限

    我是内核编程的新手 当我正在经历module param 我对权限值 0 感到困惑 有人解释说它不会在 sysfs 中获得条目 而其他人则喜欢S IRUGO将获得一个条目 我无法理解这个概念 perm 值 0 表示什么 我们什么时候需要 s
  • 如何使用maven生成下载站点

    我是 Maven 新手 正在尝试完成一个简单的任务 构建jar包和网站 完成 通过 scp 将它们部署到远程服务器 完成 该站点应包含下载页面 其中包含指向已部署的 jar 文件的链接 缺失 我不想使用 archive 或类似的工具 我只想
  • Maven 程序集插件入门遇到问题

    很抱歉在这里听起来很无知 但我是 Maven 的新手 并且一直在努力解决一些我确信非常简单的事情 The docs http maven apache org plugins maven assembly plugin assembly h
  • Netbeans 和 Maven:不同的编译行为

    我正在使用 Netbeans 和 Maven 项目 在某些情况下 Netbeans 显示编译失败 红色气球 但 Maven 编译所有内容都没有任何问题 造成这种差异的原因可能是什么 我已经检查过两者都使用相同的 JDK 版本 一个可能的原因
  • 找出 Maven 使用的编译器

    您知道我如何找到 Maven 使用哪些 JDK 来编译我的项目吗 mvn version会吐出maven的版本和它正在使用的jdk
  • 使用 Gradle 在多个 Android 应用程序之间共享 Android 库

    我有 Android 应用程序 A 和 B 我想将每个应用程序中的重复代码提取到共享库 L 中 如何使用 Gradle 执行此操作 我之前见过这个问题的一些排列 但答案很少 最接近 最好的已问问题是这个 多个 Android 应用程序依赖于
  • 为什么 TypeScript 混合了模块和原型模式?

    我正在查看此页面上 TypeScript 生成的 JS 代码 http www typescriptlang org Playground http www typescriptlang org Playground 基本上 要创建一个Gr
  • K2_内容模块评级

    我一直在category item php 中重建标准K2 评级 以查看评级从显示为星星到显示为数字 我所做的是 我替换了这段代码 div div class itemRatingForm ul class itemRatingList l
  • Python MySQL 模块

    我正在开发一个需要与 MySQL 数据库交互的 Web 应用程序 但我似乎找不到任何真正适合 Python 的模块 我特别寻找快速模块 能够处理数十万个连接 和查询 所有这些都在短时间内完成 而不会对速度产生重大影响 我想我的答案将是游戏领
  • Maven编译错误:包不存在

    我正在尝试向现有企业项目添加 Maven 支持 这是一个多模块项目 前 2 个模块编译和打包没有问题 但我面临编译错误 我尝试在多个模块中使用相同的依赖项 我的结构是 gt parent gt pom xml gt module 1 gt
  • 在 Android 库项目中禁用 Crashlytics 进行调试

    我有一个包含多个模块的项目 模块的公共代码位于库模块中 问题是我们最近将 Crashlytics 添加到了我们的项目中 在库模块中 即使我们处于调试模式 我们也会不断收到错误报告 我在网上搜索了一下 发现库总是被视为Release模式 现在
  • Maven 或 Ivy 用于管理 Ant 的依赖关系?

    我想知道管理 ant 项目依赖关系的最佳方法 Maven Ant 任务和 Ivy 的优缺点是什么 由于您想要做的是将依赖项管理添加到现有的 Ant 项目中 这正是 Ivy 的设计目的 依赖管理是 Maven 的重要组成部分 但远非全部 Ma
  • Maven:如何使用 maven-ear-plugin 将文件添加到 EAR 内的根目录?

    我需要在使用 maven ear plugin 生成的 EAR 中添加 2 个 XML 文件 不幸的是 我还没有找到将任意文件添加到 EAR 的方法 这文档 http maven apache org plugins maven ear p
  • Python 中 `if name == "__main__"` 是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 name main gt 做什么 https stackoverflow com questions 419163 what does if name main do 我已经用 Python 编写脚本
  • 如何使用分类器仅构建一个 JAR 文件?

    我在用着Maven 2 and maven jar plugin建立我的jar 我只想生成一个jar with a classifier 是否可以 在我的示例中 我只想生成myjar another 1 0 jar但不是myjar 1 0
  • 从主模块访问动态功能模块的可绘制文件夹中的图形

    我正在尝试动态模块拆分 API 交付 以便将我的游戏应用程序分解为即时版本和可安装版本 我一直在关注这里的 Codelabs 教程https codelabs developers google com codelabs on demand
  • 哪些 babel 设置适合导出库?

    我是 Babel Webpack 的新手 对 babelrc 配置有一些困惑 第一个配置 presets babel env modules false useBuiltIns usage targets gt 0 25 not dead
  • 模块未使用库演化支持进行编译;使用它意味着无法保证二进制兼容性

    最近我遇到了 SDK 的编译时警告 这是否意味着它不是使用目标设置 构建用于分发的库 构建的 你需要设置Build Libraries for Distribution在项目中Build Settings to No然后它就会消失
  • ansible unarchive 模块如何查找 tar 二进制文件?

    我正在尝试执行一个 ansible 剧本 该剧本的任务是利用unarchive模块 因为我是在 OSX 上执行此操作 所以我需要使用它gnu tar 而不是bsd tar通常与 OSX 一起提供 因为BSD tar 不受官方支持 https
  • 仅当我在 Windows 上时,如何有条件地使用 Perl 模块?

    以下 Perl 代码 if O eq MSWin32 use Win32 do windows specific stuff 在Windows下工作 但无法在所有其他平台下运行 无法在 INC中找到Win32 pm 如何指示 Perl 仅在

随机推荐