Show Me More!!!✨|

Journey&Flower

园龄:7年3个月粉丝:40关注:121

A项目的源码作为maven包引入B项目, 不给A项目源码, 我们具体因该怎么做呢

背景:

要想把 A项目 作为maven包引入 B项目, 同时又不能直接给A项目源码, 我们具体因该怎么做呢

1. A 项目的 pom.xml 需要做哪些更改?

A 项目的 pom.xml 是 Maven 构建过程的核心,它定义了如何构建、打包、版本管理等。如果希望将 A 项目作为一个 Maven 包供 B 项目引入,需要确保 pom.xml 中的以下内容:

1.1 配置 Maven 的 groupId, artifactIdversion

在 A 项目的 pom.xml 文件中,需要设置适当的 Maven 坐标信息:groupIdartifactIdversion。这些信息标识了 A 项目在 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/xsd/maven-4.0.0.xsd">
    
    <modelVersion>4.0.0</modelVersion>

    <!-- A项目的 groupId, artifactId, 和 version -->
    <groupId>com.example</groupId>
    <artifactId>a-project</artifactId>
    <version>1.0.0</version>
    
    <!-- A项目的其他配置 -->
</project>
  • groupId:通常为公司域名的反向写法(例如:com.example)。
  • artifactId:A 项目的名称,通常是项目名(例如:a-project)。
  • version:A 项目的版本号,遵循 Maven 的版本管理规则(例如:1.0.0)。

这些信息将帮助其他项目(例如 B 项目)在 Maven 中正确引用的项目。

1.2 配置 Maven 构建插件

为了确保 A 项目可以打包成 .jar 文件,需要在 pom.xml 文件中配置 Maven 的打包插件。

重点!!!

通常情况下,Maven 会自动将项目打包为.jar格式 (即: 删除现有的build配置)
<build>
    <plugins>
        <plugin>
            ......
        </plugin>
    </plugins>
</build>
如果需要更精确的控制,可以显式配置 maven-jar-plugin
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.1.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

这将确保 A 项目在构建时生成 .jar 文件。如果不配置,Maven 默认会根据项目类型进行打包,通常会生成一个 .jar 文件。

1.3 配置 Maven Deploy 插件(用于上传到仓库)

当 A 项目构建完成并生成 .jar 文件后,如果希望将其上传到 Maven 仓库(无论是公共的中央仓库还是私有仓库),需要配置 maven-deploy-plugin 插件。这个插件可以将 A 项目的 .jar 文件发布到指定的 Maven 仓库。

pom.xml 中添加如下配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>3.0.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>deploy</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

如果想将 A 项目发布到私有仓库,需要在 pom.xml 中指定仓库的信息:

<distributionManagement>
    <repository>
        <id>private-repo</id>
        <url>http://your-private-repo.com/repository/maven-releases/</url>
    </repository>
</distributionManagement>

这样,在构建和发布时,Maven 会将 A 项目自动上传到指定的仓库。

1.4 处理依赖的传递性

如果 A 项目依赖了其他第三方库,Maven 会自动处理这些依赖。但是,如果使用的是一些私有依赖库,需要在 pom.xml 中显式声明依赖仓库。例如:

<repositories>
    <repository>
        <id>private-repo</id>
        <url>http://your-private-repo.com/repository/maven-releases/</url>
    </repository>
</repositories>

这将确保 Maven 在构建时能够找到所有需要的依赖库。

1.5 确保项目的版本管理

在 A 项目中,版本管理尤为重要,尤其是在团队合作开发时。需要确保 version 属性使用适当的版本号,并且遵循语义化版本管理规则(如 1.0.01.1.02.0.0 等)。

如果在开发过程中频繁修改 A 项目,可以使用 SNAPSHOT 版本:

<version>1.0.0-SNAPSHOT</version>

这样,每次构建时 Maven 会自动将版本号增加,并且 B 项目可以直接引用最新的 SNAPSHOT 版本。


2. B 项目如何引入 A 项目

在 B 项目的 pom.xml 中,需要通过添加依赖项来引用 A 项目。例如:

<dependencies>
    <dependency>
        <groupId>com.example</groupId>
        <artifactId>a-project</artifactId>
        <version>1.0.0</version>
    </dependency>
</dependencies>

如果 A 项目是通过私有仓库发布的,还需要在 B 项目的 pom.xml 中添加私有仓库的地址:

<repositories>
    <repository>
        <id>private-repo</id>
        <url>http://your-private-repo.com/repository/maven-releases/</url>
    </repository>
</repositories>

3. 总结

  • A 项目的 pom.xml 需要做的更改
    • 配置 groupIdartifactIdversion 等基本信息;
    • 配置 Maven 构建插件,确保能够打包成 .jar 文件;
    • 配置 Maven Deploy 插件,将 A 项目发布到 Maven 仓库;
    • 如果使用私有仓库,配置仓库地址。
  • B 项目的 pom.xml 只需要引用 A 项目的依赖,并配置仓库地址(如果使用私有仓库)。

通过这些步骤,A 项目就能作为一个 Maven 包发布到仓库中,B 项目可以轻松地将其作为依赖引入,完成源代码的共享与重用。

本文作者:Journey&Flower

本文链接:https://www.cnblogs.com/JourneyOfFlower/p/18634969

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Journey&Flower  阅读(74)  评论(0编辑  收藏  举报
历史上的今天:
2021-12-27 一些接口明明可以用POST请求,却一定要用GET请求呢
2021-12-27 jdk下载-所有版本下载
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 Not Found REOL
  2. 2 白色恋人 游鸿明
  3. 3 盛夏的果实 莫文蔚
  4. 4 以父之名 周杰伦
  5. 5 晴天 周杰伦
  6. 6 简单爱 周杰伦
  7. 7 东风破 周杰伦
  8. 8 稻香 周杰伦
  9. 9 爱在西元前 周杰伦
  10. 10 千里之外 费玉清-周杰伦
  11. 11 偏爱 张芸京
  12. 12 大海 张雨生
  13. 13 月亮惹的祸 张宇
  14. 14 雨一直下 张宇
  15. 15 过火 张信哲
  16. 16 隐形的翅膀 张韶涵
  17. 17 天下 张杰
  18. 18 当你孤单你会想起谁 张栋梁
  19. 19 清明雨上 许嵩
  20. 20 玫瑰花的葬礼 许嵩
  21. 21 断桥残雪 许嵩
  22. 22 城府 许嵩
  23. 23 等一分钟 徐誉滕
  24. 24 客官不可以 徐良_小凌
  25. 25 坏女孩 徐良_小凌
  26. 26 犯贱 徐良
  27. 27 菠萝菠萝蜜 谢娜
  28. 28 贝多芬的悲伤 萧风
  29. 29 睫毛弯弯 王心凌
  30. 30 我不是黄蓉 王蓉
  31. 31 秋天不回来 王强
  32. 32 今天你要嫁给我 陶喆,蔡依林
  33. 33 丁香花 唐磊
  34. 34 绿光 孙燕姿
  35. 35 求佛 誓言
  36. 36 十一年 邱永传
  37. 37 下辈子如果我还记得你 马郁
  38. 38 一千年以后 林俊杰
  39. 39 江南 林俊杰
  40. 40 曹操 林俊杰
  41. 41 背对背拥抱 林俊杰
  42. 42 会呼吸的痛 梁静茹
  43. 43 勇气 梁静茹
  44. 44 爱你不是两三天 梁静茹
  45. 45 红日 李克勤
  46. 46 星月神话 金莎
  47. 47 嘻唰唰 花儿乐队
  48. 48 穷开心 花儿乐队
  49. 49 六月的雨-《仙剑奇侠传》电视剧插曲 胡歌
  50. 50 一个人的寂寞两个人的错 贺一航
  51. 51 好想好想-《情深深雨濛濛》电视剧片尾曲 古巨基
  52. 52 情人 刀郎
  53. 53 冲动的惩罚 刀郎
  54. 54 西海情歌 刀郎
  55. 55 2002年的第一场雪 刀郎
  56. 56 红玫瑰 陈奕迅
  57. 57 浮夸 陈奕迅
  58. 58 爱情转移 陈奕迅
  59. 59 独家记忆 陈小春
  60. 60 记事本 陈慧琳
  61. 61 看我72变 蔡依林
  62. 62 寂寞在唱歌 阿桑
  63. 63 樱花草 Sweety
  64. 64 中国话 S.H.E
  65. 65 波斯猫 S.H.E
  66. 66 杀破狼-《仙剑奇侠传》电视剧片头曲 JS
  67. 67 Lydia F.I.R.
  68. 68 I Miss You 罗百吉_青春美少女.
盛夏的果实 - 莫文蔚
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 李焯雄

作曲 : Meyna Co

编曲 : 张佳添

也许放弃 才能靠近你 不再见你

你才会把我记起 时间累积

这盛夏的果实 回忆里寂寞的香气

我要试着离开你 不要再想你

虽然这并不是我本意

你曾说过 会永远爱我

也许承诺 不过因为没把握 别用沉默

再去掩饰什么 当结果是那么赤裸裸

以为你会说什么 才会离开我

你只是转过头 不看我

不要刻意说 你还爱我

当看尽潮起潮落 只要你记得我

你曾说过 会永远爱我 也许承诺

不过证明没把握 不用难过

不用掩饰什么 当结果是那么赤裸裸

其实不必说什么

才能离开我 起码那些经过 属于我

也许放弃 才能靠近你 不再见你

你才会把我记起 时间累积

这盛夏的果实 回忆里爱情的香气

我以为不露痕迹 思念却满溢

或许这代表了我的心

不要刻意说 你还爱我

当看尽潮起潮落 只要你记得我

如果你会梦见我 请你再抱紧我