创建Maven源代码和Javadoc工件
许多人都知道Maven源代码和Javadoc工件,但是不知道为什么要创建它们。 我肯定在这个阵营中–我可以理解为什么人们想要此信息,但是由于要手动导航Maven存储库,因此获取信息似乎相对效率较低。
然后我被线索棒击中。
这些工件由IDE而非人员使用。 如果您使用的是Maven依赖项,那么IDE足够聪明,可以知道如何查找这些工件。 当您单步调试器中的代码时,将使用源工件-您不再需要将源代码显式绑定到IDE中的库。 javadoc工件用于编辑器中的自动完成和上下文相关帮助。
这些都不是必需的-多年以来我一直很高兴使用'vi'-但是当您大多数都知道自己需要什么但不确定细节时,它肯定会提高您的生产率。
源工件
源工件最容易创建。 添加一个将作为标准构建的一部分自动运行的插件,您已完成。 构建花费的时间稍长一些,但您只需要创建几个目录的归档文件就不必担心了。
<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"><build><plugins><!-- create source jar --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>2.1.1</version><executions><execution><id>attach-sources</id><phase>verify</phase><goals><!-- produce source artifact for project main sources --><goal>jar-no-fork</goal><!-- produce test source artifact for project test sources --><goal>test-jar-no-fork</goal></goals></execution></executions></plugin></plugins></build>
</project>
Javadoc工件
Javadoc工件要复杂一些,因为您可能希望同时创建一个对人类友好的网站。 根据我的经验,最大的问题是外部类是不透明的,因为它花费了大量的精力来创建必要的链接。 现在,maven插件会为我们解决这个问题!
构建该工件需要花费大量时间,因此您可能不想每次都这样做。 有两种方法–明确指定Maven目标或将其绑定到自定义配置文件,例如'javadoc'。 以下配置使用自定义配置文件。
<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"><profiles><!-- create javadoc --><profile><id>javadoc</id><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-javadoc-plugin</artifactId><version>2.9.1</version><configuration><detectLinks /><includeDependencySources>true</includeDependencySources><dependencySourceIncludes><dependencySourceInclude>com.invariantproperties.project.student:*</dependencySourceInclude></dependencySourceIncludes><!-- heavily used dependencies --><links><link>http://docs.oracle.com/javase/7/docs/api/</link><link>http://docs.oracle.com/javaee/6/api</link><link>http://docs.spring.io/spring/docs/current/javadoc-api/</link><link>http://docs.spring.io/spring-data/commons/docs/1.6.2.RELEASE/api/</link><link>http://docs.spring.io/spring-data/jpa/docs/1.4.3.RELEASE/api/</link><link>http://docs.spring.io/spring-data/data-jpa/docs/1.4.3.RELEASE/api/</link><link>https://jersey.java.net/apidocs/1.17/jersey/</link><link>http://hamcrest.org/JavaHamcrest/javadoc/1.3/</link><link>http://eclipse.org/aspectj/doc/released/runtime-api/</link><link>http://eclipse.org/aspectj/doc/released/weaver-api</link><link>http://tapestry.apache.org/5.3.7/apidocs/</link></links></configuration><executions><execution><id>aggregate</id><!-- <phase>site</phase> --><phase>package</phase><goals><goal>aggregate</goal><goal>jar</goal></goals></execution></executions></plugin></plugins></build><reporting><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-javadoc-plugin</artifactId><version>2.9.1</version><configuration><!-- Default configuration for all reports --></configuration><reportSets><reportSet><id>non-aggregate</id><configuration><!-- Specific configuration for the non aggregate report --></configuration><reports><report>javadoc</report></reports></reportSet><reportSet><id>aggregate</id><configuration><!-- Specific configuration for the aggregate report --></configuration><reports><report>aggregate</report></reports></reportSet></reportSets></plugin></plugins></reporting></profile></profiles>
</project>
包信息.java
最后,每个软件包都应该具有package-info.java文件。 这将替换旧的package-info.html文件,但由于它允许使用类注释,因此是一个改进。 (由于它是无效的类名,因此不会被编译。)
我发现包括指向资源的链接非常有帮助,这些链接可以帮助我理解类的外观。 例如,“学生”项目中的元数据包包含指向我的博客文章,我认为有用的其他博客文章甚至适当的Oracle教程的链接。 在公司中,这些可能是指向Wiki页面的链接。
/** * Classes that support JPA Criteria Queries for persistent entities.* * @see <a href="http://invariantproperties.com/2013/12/19/project-student-persistence-with-spring-data/">Project Student: Persistence with Spring Data</a>* @see <a href="http://invariantproperties.com/2013/12/29/project-student-jpa-criteria-queries/">Project Student: JPA Criteria Queries</a>* @see <a href="http://www.petrikainulainen.net/programming/spring-framework/spring-data-jpa-tutorial-part-four-jpa-criteria-queries/">Spring Data JPA Tutorial Part Four: JPA Criteria Queries</a> [www.petrikainulainen.net]* @see <a href="http://docs.oracle.com/javaee/6/tutorial/doc/gjitv.html">JEE Tutorial</a> * * @author Bear Giles <bgiles@coyotesong.com>*/
package com.invariantproperties.project.student.metamodel;
源代码
- 源代码位于https://github.com/beargiles/project-student [github]和http://beargiles.github.io/project-student/ [github页面]。
翻译自: https://www.javacodegeeks.com/2014/02/creating-maven-source-and-javadoc-artifacts.html
创建Maven源代码和Javadoc工件相关推荐
- javadoc maven_创建Maven源代码和Javadoc工件
javadoc maven 许多人都知道Maven源代码和Javadoc工件,但是不知道为什么要创建它们. 我绝对是在这个阵营中–我可以理解为什么人们想要此信息,但是由于需要手动导航Maven存储库, ...
- idea创建maven程序_使用Maven程序集创建漏洞评估工件
idea创建maven程序 本文将讨论如何使用Maven程序集创建可提供给第三方漏洞评估站点(例如Veracode )进行审查的工件. 错误的静态分析与漏洞评估 在这一点上,每个人都知道findbug ...
- Eclipse Maven 依赖包找不到源代码及javadoc
1. 问题描述 可以查看 jdk 源代码及对应的 javadoc 文件: 可以查看 maven 依赖包中 zookeeper 对应的源代码和 javadoc 文件: 但是新下载了 org.apache ...
- Jenkins 创建Maven项目
上面我讲述的Job都是非编译项目,也就是代码从仓库中拉下来,不经过任何操作就可以发布,这对于像Java.Android等源码需要编译的项目是不可用的,下面我们讲解如何使用Maven插件来构建Java项 ...
- 荐 Intellij IDEA创建Maven Web项目(带有webapp文件夹目录的项目)
转载自:点击打开链接 在创建项目中,IDEA提供了很多项目模板,比如Spring MVC模板,可以直接创建一个基于Maven的Spring MVC的demo,各种配置都已经设定好了,直接编译部署就可以 ...
- eclipse maven打包jar 部分jsp无法访问_Maven系列教材 (九)- 在Eclipse中创建maven风格的java web项目...
Maven系列教材 (九)- 在Eclipse中创建maven风格的java web项目 步骤1:删除j2ee目录步骤2:新建Maven 项目步骤3:这个界面点下一步步骤4: 这个界面使用webapp ...
- IDEA 创建 MAVEN 父子工程
IDEA 创建 MAVEN 父子工程 1.参考资料 IDEA 创建MAVEN父子项目 使用IDEA创建maven父子工程 使用IDEA创建maven父子工程项目 2.创建 Maven 父工程 选择新建 ...
- 大数据-玩转数据-IDEA创建Maven工程
一. IDEA集成Maven插件 打开IDEA,进入主界面后点击 file,然后点击 settings,在上面的快捷查找框中输入maven,查找与maven相关的设置,然后点击maven 修改mave ...
- 血战Maven,各种问题,Eclipse控制台乱码,Maven打包时Javadoc失败-UTF-8-BOM编码
最近继续Maven打包,一个项目又遇到问题了. 提示Javadoc失败,但是没有 Eclipse控制台乱码了,看不清具体原因. 瞎猜,太费时间了. 首要问题是解决乱码. 可以参考:转载 Eclipse ...
最新文章
- joomla 1.7遇到的麻烦——不能删除模板的解决办法
- React +antd +wangEditor 富文本编辑器
- android wifi调试
- 《大道至简》阅读笔记二
- Intel Optane(tm) Memory Pinning 无法加载DLLiaStorAfsServiceApi.dll:找不到指定模块。(异常来自HRESULT:0x8007007E)。
- C++ (public, protected, private继承)
- shell 编程中空格的使用,双引号,单引号,反引号
- 51单片机基本刷屏测试实验_51单片机实验
- Python代码规范
- MATLAB 神经网络函数
- 【洛谷】P3957 [NOIP2017 普及组] 跳房子
- URL重定向(跳转)漏洞
- 计算机配件仓库照片,配件仓库存管理技巧
- 天猫店铺推广怎么收费?还有哪些推广方法?
- 为什么程序员喜欢这些键盘?
- 【华为OD机试】1038 - 学英语
- mybatis XML 中<if>、<choose>、<when>、<otherwise>等标签的使用?多条件查询该怎么处理?
- Lunch Time
- 计算机系统重新之后为啥没声音,电脑重装系统后没声音怎么办 电脑重装系统后没声音解决方法...
- python自动爬取快看漫画并发布至头条号(没编程基础也可学会)
热门文章
- fastreport 打印两个list_Smaller And Smarter Python数据结构:合并两个有序链表
- 转: 记录centos7 安装erlang22.3和rabbitMQ
- Unicode® Character Name Index
- XML—— 验证XML文档
- jep290涉及jdk版本_JDK 14 – JEP 361从预览中切换表达式
- 不停机与停机更新_Istio的零停机滚动更新
- flex布局水平垂直 垂直_垂直和水平装饰
- java常见的ide_在三个Java IDE中生成的三种常见方法
- websocket wss_使用wss和HTTPS / TLS保护WebSocket的安全
- office工作日志文件_风暴事件处理器–每个工作者的GC日志文件