背景
前段时间打包了一些基础的工具类和插件,然后发布到了公司的私有maven仓库里,一开始用起来还没有啥问题,可是随着jar包中的功能越来越丰富,时间越来越久,好些方法的具体功能都已经记不清了。
代码里的注释是肯定有的,只不过其他项目依赖jar包的时候由于下载不到源码,所以注释也显示不了,只能看下反编译的代码,或者两个项目切换着看注释,很是麻烦。
因此就研究了下怎么把源码也一起发布到maven仓库里。
实现
经过一番探索,偶然发现了maven-source-plugin
找个插件,官网地址:
http://maven.apache.org/plugins/maven-source-plugin/index.html
用法很简单,pom文件中增加以下配置:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.7</version>
<configuration>
<generateBackupPoms>false</generateBackupPoms>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
versions-maven-plugin
这个插件是修改版本号的,对于多模块项目的打包发布非常方便。
maven-source-plugin
就不多说了。
正常的deploy
发布之后,会有一个前半部分和当前要发布的jar包名字相同、后面多了-source
后缀的jar包文件,这个就是我们的源码了。
附
执行 mvn install
,maven会自动将source install到repository 。
执行 mvn deploy
,maven会自动将source deploy到remote-repository 。
执行 mvn source:jar
,单独打包源码。
再附
多模块项目,只需要在父级的pom文件中加上以上插件即可。不过如果你要单独发布某个子模块的话,就需要在对应的子模块也加上这个插件。