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

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


  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>
  1. 另一种写法
<!-- 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>
  1. 发布到Nexus
    maven-source-plugin提供项目自动将源码打包并发布的功能
# 执行
mvn clean install deploy

  1. settings.xml配置
<server>
  <id>dev</id>
  <username>admin</username>
  <password>admin123</password>
</server>
  1. 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>
  1. 源码下载
# 下载所有源码
mvn dependency:sources 
# 下载所有源码和文档
mvn dependency:sources -DdownloadSources=true -DdownloadJavadocs=true # 下载源码的doc文件
  1. 下载指定的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 就可以直接下载


相关文章
|
13天前
|
Java 应用服务中间件 Maven
Maven的三种项目打包方式——pom,jar,war的区别
Maven 提供了多种打包方式,分别适用于不同类型的项目。pom 用于父项目或聚合项目,便于项目的结构和依赖管理;jar 用于Java类库或可执行的Java应用程序;war 则专用于Java Web应用程序的部署。理解这些打包方式的用途和特点,可以帮助开发者更好地配置和管理Maven项目,确保构建和部署过程的顺利进行。无论是单模块项目还是多模块项目,选择合适的打包方式对于项目的成功至关重要。
37 3
|
28天前
|
Java Maven Android开发
【Azure Developer】VS Code打包Java maven Project 遇见 BUILD FAILURE
Unknown lifecycle phase "lean". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>
|
29天前
|
缓存 IDE Java
idea的maven项目打包时没有source下的文件
【10月更文挑战第21天】idea的maven项目打包时没有source下的文件
42 1
|
1月前
|
Java 测试技术 Maven
maven 打包命令
maven 打包命令
27 6
|
1月前
|
Java Linux Maven
IDEA如何用maven打包(界面和命令两种方式)
【10月更文挑战第14天】本文介绍了两种Maven项目打包方法:命令行与IDEA界面。首先确保已安装Maven并配置环境变量,通过`mvn -v`检查安装。命令行打包需进入项目目录,执行`mvn package`,之后在`target`目录查看结果。IDEA打包则需配置Maven路径,打开Maven Projects窗口,双击Lifecycle下的`package`阶段,同样在`target`目录查找生成文件,并在Build窗口查看日志以排查问题。
806 1
|
1月前
|
Java Shell Maven
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
111 4
|
1月前
|
Java Maven
用graalvm将maven项目打包成可执行文件
本文介绍了如何使用GraalVM将Maven项目打包成可执行文件,包括引入依赖和插件、编写代码、执行打包命令以及运行查看结果的完整过程。
142 0
用graalvm将maven项目打包成可执行文件
|
1月前
|
Java Maven
maven打包出现没有主类的原因,详细分析并解决
本文分析了使用Maven打包Java应用时找不到或无法加载主类的问题,通常是由于未配置主类或打包时未包含依赖,并通过添加Maven插件解决了依赖问题,同时指出了JavaFX应用可能遇到的运行时组件缺失的错误。
153 0
maven打包出现没有主类的原因,详细分析并解决
|
1月前
|
Java 应用服务中间件 Maven
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
330 0
|
3月前
|
Java Maven 容器
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
使用IntelliJ IDEA的Artifacts功能,可以将项目依赖的第三方jar包打包进jar文件中,实现双击jar包即可直接运行。
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行

推荐镜像

更多
下一篇
无影云桌面