实现目标

maven打包,在生成的jar包中带有源代码。记住,这个带源代码的意思是源代码跟编译生成的文件放在一个jar文件里面,而不是单独的一个XXX-source.jar包。

实现思想

把源代码当作资源文件

实现方法一

<build><resources><resource> <directory>src/main/java</directory> </resource> </resources> </build>

说明:默认的资源文件夹是src/main/resource,此方法修改了资源文件夹,让你默认的资源文件夹变成了src/main/java文件夹。而这个文件夹在maven中是默认放置源代码的。 
缺点:修改之后,src/main/resource文件夹就不是资源文件夹了,放在里面的文件将不会被当作资源。

实现方法二

<plugin><groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.3</version> <executions> <execution> <id>copy-resources</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.build.outputDirectory}</outputDirectory> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.java</include> </includes> </resource> </resources> </configuration> </execution> </executions> </plugin>

说明:插件maven-resources-plugin默认处理资源和测试资源,把资源加入到文件夹${project.build.outputDirectory},这个引用表示项目的输出文件夹。一般是项目的WEB-INF\classes文件夹。等到打包的时候,就把这个文件夹里面的内容打包成jar文件。所以想要把源代码打包到jar文件里面,就需要把源代码当作资源文件添加到文件夹${project.build.outputDirectory}。 
缺点:代码比较长 
优点:不会修改资源文件夹,项目结构不用改变,推荐使用这一种

参考资源

  • http://stackoverflow.com/questions/25779900/how-to-include-source-file-java-file-parallel-to-class-file-in-the-generated
  • http://stackoverflow.com/questions/23933911/include-source-code-while-exporting-a-jar-using-maven

转载于:https://www.cnblogs.com/telwanggs/p/7728040.html

maven如何实现创建带源代码的jar包相关推荐

  1. 创建jira plugin插件、创建jira实例生成jar包总结

    创建jira plugin插件.创建jira实例生成jar包总结 创建插件骨架: 在本地安装完Atlassian SDK后,需注意将环境变量里的maven路径更改为sdk里自带的maven仓库路径. ...

  2. Maven公共中央仓库发布自己的Jar包

    Maven公共中央仓库发布自己的Jar包 流程概要 创建工单 配置环境和项目 发布jar包 一.创建工单 1. 注册账号 https://issues.sonatype.org/secure/Sign ...

  3. Maven Nexus搭建本地私服 上传jar包或本地项目到私服

    Nexus就是Maven的私服 在日常开发中我们在使用maven时经常会遇到下面的问题 1.一些无法从外部仓库下载的构件,例如内部的项目部署到私服上,以便供其他依赖项目使用. 2. 为了节省带宽和时间 ...

  4. 使用Maven构建Dubbo服务的可运行jar包

    本文为<基于Dubbo的分布式系统架构视频教程>的课程系列文档,更多课程信息,请关注:http://www.roncoo.com Dubbo视频教程--基础篇--第07节--使用Maven ...

  5. 如何根据jar包的名称找到包含对应源代码的jar包

    我们经常在trouble shooting时,需要进入依赖的java库文件的源代码内进行调试,如下图所示,Eclipse提示需要指定包含了源代码的jar包:C:/temp/httpclient-4.5 ...

  6. 【Maven】无法下载私服 SNAPSHOT 版本 jar 包

    插件开发的时候,做ci的时候,发现依赖包没成功下载. 确认仓库有这个包,但是就是运行显示jar包文件不存在.排查过程中,遇到有些是这个情况,虽然我最后不是这个原因(而是pom文件少写了(๐॔˃̶ᗜ˂̶ ...

  7. maven依赖本地非repository中的jar包-依赖jar包放在WEB-INF/lib等目录下的情况客户端编译出错的处理...

    2019独角兽企业重金招聘Python工程师标准>>> maven依赖本地非repository中的jar包 http://www.cnblogs.com/piaolingxue/a ...

  8. java源代码转jar包

    引入 jar文件具有跨平台.数据压缩.多文件封装的优点,所以我们常将java源程序和其他的文件(比如资源文件.签名)打包到一起,变成jar包.这样对java程序的部署会更方便,也更安全. 用IDEA等 ...

  9. Maven无法正常通过快照Snapshots下载jar包问题

    导读: 首先在一般大公司的项目中,不推荐使用快照Snapshots去下载jar包,我的理解是因为在Snapshots上发布的jar包版本可能仅仅更多是测试用(可能后续会出现bug呀等等防止这些问题的发 ...

最新文章

  1. 使用ADO.NET 的最佳实践(zz)
  2. WPF最大化避免覆盖任务栏
  3. CUBA在查询语句如何添加参数
  4. Amazon S3数据存储
  5. boost::hana::second用法的测试程序
  6. 文献记录(part35)--Mixed pooling and richer attention feature fusion for crack detection
  7. 【Floyed】工厂的烦恼(ssl 1762)
  8. 【C++ 与 STL】不定长数组:vector
  9. ARCGIS中生成KML文件
  10. 老李分享:浏览器引擎的介绍
  11. 基于RDP瘦客户机协议的简要说明
  12. 操作高通QXDM5,点击重置按钮出现报错
  13. Matlab:风向玫瑰图,我也行
  14. 一些iOS面试题答案
  15. 利用MS模拟天然气(甲烷)在多孔介质中的吸附
  16. 这一次,抄袭的人竟然是Facebook!美版微信要出现了吗?!
  17. java支付宝rsa2签名,使用支付宝SDK进行RSAj加签验签以及加密解密
  18. GDB调试器——GDB调试器简介
  19. Java的三大版本和JDK,JRE,JVM的概念
  20. 微信点击短链接直接跳转到支付宝领红包教程 附带例子

热门文章

  1. 关于嵌入式可执行程序,你了解多少?
  2. LogSegment分析
  3. (42)System Verilog接口变量数据位宽扩展
  4. (43)FPGA状态机三段式
  5. (15)Verilog HDL宏定义:define
  6. (23)FPGA面试题常用逻辑电平
  7. oracle sqe值,质量感悟 | 无论什么层次的供应商都喜欢跟SQE中的高手过招儿
  8. fork() 和 vfork()
  9. 【Pre蓝桥杯嵌入式】【STM32】Unkown device
  10. 【C语言】shape of you