使用 maven 自动将源码打包并发布

2023-10-28

  1. 在pom.xml中添加maven-source-plugin插件,maven生成 jar的同时生成 sources包

    <plugin>
    	<groupId>org.apache.maven.plugins</groupId>
    	<artifactId>maven-source-plugin</artifactId>
    	<version>3.0.0</version>
    	<!-- 绑定source插件到Maven的生命周期,并在生命周期后执行绑定的source的goal -->
    	<executions>
    		<execution>
    			<!-- 绑定source插件到Maven的生命周期 -->
    			<phase>compile</phase>
    			<!--在生命周期后执行绑定的source插件的goals -->
    			<goals>
    				<goal>jar-no-fork</goal>
    			</goals>
    		</execution>
    	</executions>
    </plugin>
    

    另一种写法

    <!-- Source attach plugin -->
    <plugin>
    	<groupId>org.apache.maven.plugins</groupId>
    	<artifactId>maven-source-plugin</artifactId>
    	<executions>
    		<execution>
    			<id>attach-sources</id>
    			<goals>
    				<goal>jar</goal>
    			</goals>
    		</execution>
    	</executions>
    </plugin>
    
  2. 发布到Nexus
    maven-source-plugin提供项目自动将源码打包并发布的功能

    # 执行
    mvn clean install deploy
    

    在这里插入图片描述

    settings.xml配置

    <server>
      <id>dev</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
    

    pom.xml配置

    <distributionManagement>
        <!-- 用于上传的仓库 -->
        <repository>
            <!-- 这里的id需要和settings.xml中的server的id一致 -->
            <id>dev</id>
            <name>nexus-third</name>
            <!-- third是一个hosted类型的仓库,用于存放第三方或自己的jar包 -->
            <url>http://192.168.2.109:8888/repository/third/</url>
        </repository>
    </distributionManagement>
     
    <build>
        <plugins>
            <!-- 要将源码放上去,需要加入这个插件 -->
            <plugin>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <attach>true</attach>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    
  3. 源码下载

    # 下载所有源码
    mvn dependency:sources 
    # 下载所有源码和文档
    mvn dependency:sources -DdownloadSources=true -DdownloadJavadocs=true # 下载源码的doc文件
    

    下载指定的jar对应的源码和文档
    以 spring-data-redis-2.1.10.RELEASE.jar 为例

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-redis</artifactId>
        <version>2.1.10.RELEASE</version>
    </dependency>
    
    # 下载源码
    mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -Dartifact=org.springframework:data:2.1.10.RELEASE:jar:sources 
    # 下载javadoc 
    mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -Dartifact=org.springframework.data:spring-data-redis:2.1.10.RELEASE:jar:javadoc 
    

    idea自带下载源码的功能,点开一个没有源码的类,右上角点download sources 就可以直接下载

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

使用 maven 自动将源码打包并发布 的相关文章

随机推荐

  • MATLAB实现周期信号的傅里叶级数的展开

    MATLAB小白 不足之处还请多指教 设周期函数的波形为 求该周期信号的傅里叶级数展开式 并画出傅里叶展开后的波形 我们通过信号与系统的学习可以知道 周期函数可以通过一系列的三角函数的线性组合来逼近 如下图所示 首先我们可以通过三角函数的正
  • Mac下选择适合Unity的IDE

    以前都是Windows下使用Unity的 配合强大的visualstudio 写起代码来简直不要太爽 当我切换到Mac平台后 就感觉写代码的感受一下子回到了解放前 目前我尝试以下几种解决方案 终于让我写代码 1 vistualstudio
  • java.net.UnknownHostException完美解决。

    生产者会向Eureka注册 生产者如果部署在本机上 只需要部署以下参数即可 eureka instance instance id thisiswsgs01 设置服务描述 消费者只需要通过 http thisiswsgs01 user 1即
  • pubmed 影响因子_如何在Pubmed利用影响因子筛选文献?

    前几天给大家介绍了Pubmed上的2个神器 不知道的同学可以返回去看原文 两大神器 让你的PubMed飞起来 直接显示影响因子 Sci Hub链接 分区 用完之后是不是觉得方便了许多 今天 再给大家介绍一个使用Pubmed时候的小窍门 在P
  • UVA 401 Palindromes 题解

    Palindromes A regular palindrome is a string of numbers or letters that is the same forward as backward For example the
  • 制造企业有没有APS系统?生产车间如何计划排程和安排生产计划的?

    生产车间从组织职能上来说是以生产为重点的部门 生产计划应该由生产计划部来安排 如果从职能上来说 生产计划和生产车间放在一起会产生类似又当运动员又当裁判员的角色一样 从管理角度来看 生产计划和生产管理需要分开 原则上一个属于计划调度部门 一个
  • 记录一下实体类模型(Entity)的常用注解

    1 Data lombok注解 Data 注解的主要作用是提高代码的简洁 使用这个注解可以省去代码中大量的get set toString 等方法 2 TableName MybatisPlus注解 TableName注解主要是实现实体类型
  • 树莓派外设小开发(继电器、语音模块、超声波模块)

    wiringPi库安装与查看 首先要了解wiringPi库 wiringPi是一个很棒的树莓派IO控制库 使用C语言开发 提供了丰富的接口 GPIO控制 中断 多线程 等等 验证wiringPi的是否安装成功 输入gpio v 会在终端中输
  • 单片机C语言常用的头文件与库函数

    单片机C语言常用的头文件与库函数 以下头文件与库函数 只用头文件包含以下相应头文件即可调用 持续更新中 Intrins h头文件 函数名 函数原型 功能 返回值 crol unsigned char crol unsigned char v
  • 计算机密码输入正确,Win10输入正确密码却提示“密码不正确”如何解决

    在使用windows10系统过程中 很多用户都会遇到一些奇怪的问题 比如 有用户反馈开机登录win10的时候输入正确的登入密码 却碰到 密码不正确 请确认您的微软账户密码正确 的错误提示 无法登录 是怎么回事呢 在出现该问题的时候首先我们可
  • QT定时器的几种用法

    一 自定义定时器 定义一个定时器对象 绑定自定义槽函数 也可以定义定时器对象指针 这样可以一次性让多个定时器绑定同一个槽函数 头文件中加入 QTimer myTimer void myTimerEvent 自定义定时处理槽函数 在需要启动的
  • TCP的三次握手与四次挥手以及面试常见题

    TCP 是什么 TCP Transmission Control Protocol 传输控制协议 是一种面向连接的 可靠的 基于字节流的传输层通信协议 而且TCP是全双工模式 面向连接 你和你女朋友聊天是面向连接的 只有连接起来才可以通信的
  • 【Jmeter】什么是BeanShell?

    一 什么是BeanShell BeanShell是用Java写成的 一个小型的 免费的 可以下载的 嵌入式的Java源代码解释器 JMeter性能测试工具也充分接纳了BeanShell解释器 封装成了可配置的BeanShell前置和后置处理
  • 花生壳 linux客户端 命令

    phddns start service sshd status phddns status phddns version
  • HJ32密码截取

    有一定难度 难在考虑不周全 最后还是看了别人提到的方法 自己独立实现了一下 可能没有别人的简洁 但是易懂 调试的时候有些小毛病 但自己解决了 原因不是很清楚 最后总结里会提到 目标 在输入的字符串里找到对称的且是最长的那个字符串 思路 参考
  • 【Zabbix实战之部署篇】Zabbix使用SNMP监控Linux系统

    Zabbix实战之部署篇 Zabbix使用SNMP监控Linux系统 一 SNMP协议介绍 1 SNMP协议简介 2 SNMP协议特点 二 实践环境介绍 三 检查Zabbix监控平台环境 1 检查Zabbix相关组件容器状态 2 检查Zab
  • day05:js基础——函数、作用域问题

    js函数 作用域问题 概述 1 函数 1 1 函数概念 函数作用 函数构成 1 2 定义函数 调用函数 1 3 函数参数 1 4 函数返回值 1 5 js中的特殊函数 1 6 函数demo 2 变量作用域 3 js中的预解析 3 1 声明式
  • 用c语言制作一个简单的答题系统

    首先制作一个答题系统需要有一个题库 其次要有完整的出题系统 然后要能够进行答题和判断答案对错 最后就是统计答案正确率了 实现创建一个题库并不难 仅需要使用数组保存题目与标准答案就行了 使用strcpy函数将题目分别输入进题库 部分代码如下
  • Web自动化测试 —— 测试环境搭建 (Selenium+Python)及视频操作

    一 什么样项目适合做web自动化 1 软件需求不会频繁的变更 2 项目周期比较长 3 自动化的脚本能够重复利用 介入点 第一个版本的核心功能确认以后 系统测试 自动化的实施过程 1 可行性分析 2 框架的选择 selenum rf 框架的搭
  • 使用 maven 自动将源码打包并发布

    在pom xml中添加maven source plugin插件 maven生成 jar的同时生成 sources包