java工程化_(二)Java工程化--Maven实践(示例代码)
Maven项目版本号
默认版本号: 1.0-SNAPSHOT 最佳实践是约定该版本为不稳定版本,如果发布一定要删除;
建议的版本规则: 主版本号.次版本号.增量版本号- 如:1.0.0-RELEASE 10.2.5-FINAL 等. 最佳实践是结合自身情况制定大家都认可的版本号规则.
常见命令
内置的maven插件提供了常见的命令, 可以在以下位置找到对应的包: .m2epositoryorgapachemavenplugins
compile
clean 删除/target,将已编译的二进制文件等删除
test test case junit/testNG
package 打包
install 把项目install到本地仓库
deploy 发布jar到remote服务器
mvn help:system 查看环境变量
插件
插件仓库
https://maven.apache.org/plugins/
http://www.mojohaus.org/plugins.html
常见插件
findbugs 静态代码检查
versions 统一升级版本号 统一升级版本 http://www.mojohaus.org/versions-maven-plugin/ 可以查看使用示例, 常用的设置版本的命令为mvn versions: set –DnewVersion=1.1.0-final
mvn versions:set -DnewVersion=1.1
source 打包源代码,当jar提供给外部的时候斟酌使用
assembly 打包zip、war
tomcat7
org.codehaus.mojo
findbugs-maven-plugin
3.0.0
High
Default
true
target/site
org.codehaus.mojo
versions-maven-plugin
2.3
maven-source-plugin
2.3
attach-sources
install
jar-no-fork
maven-assembly-plugin
3.0.0
com.xlx.Test
jar-with-dependencies
org.apache.tomcat.maven
tomcat7-maven-plugin
2.2
8080
/
自定义插件
创建项目
修改pom的maven-plugin
添加依赖
org.apache.maven
maven-plugin-api
LATEST
org.apache.maven.plugin-tools
maven-plugin-annotations
LATEST
provided
写代码实现AbstractMojo
@Mojo(name="xlxTest",defaultPhase = LifecyclePhase.PACKAGE)
public class Test extends AbstractMojo {
/**
* 接收的参数
*/
@Parameter
private String message;
/**
* 接收多个值的参数
*/
@Parameter
private List options;
/**
* 命令行中接收,注意必须有property mvn:package -Dargs=this is from cmd
*/
@Parameter(property = "args")
private String args;
public void execute() throws MojoExecutionException, MojoFailureException {
System.out.println("my first maven plugin message is : " + message);
System.out.println("my first maven plugin options is : " + options);
System.out.println("my first maven plugin args from evm is : " + args);
}
}
mvn install
使用, maven可以接收参数, 也可以使用环境变量取,如${settings.localRepository},${project.baseUri}等
com.xlx
engineering
1.0-SNAPSHOT
package
xlxTest
message
one
two
Profile
不同运行环境 dev/prod/test等
mvn clean package –P dev
settings.xml 可以指定不同服务器仓储配置私服或者官方
多环境配置的配置文件路径
dev
dev
true
test
test
${baseDir}/src/main/resources
conf/**
src/main/resources/conf/${profile.active}
私服
下载: https://www.sonatype.com/download-oss-sonatype?hsCtaTracking=920dd7b5-7ef3-47fe-9600-10fecad8aa32%7Cf59d5f10-099f-4c66-a622-0254373f4a92
安装, 解压即可, 如果需要修改端口号等信息, 可以修改文件
exus-3.13.0-01etc
exus-default.properties
启动命令 转到
exus-3.13.0-01in下, nexus /run 可查看启动日志
使用: http://books.sonatype.com/nexus-book/reference3/index.html
pom中增加发布节点
nexus-release
nexus-release
http://localhost:8099/repository/maven-releases/
nexus-snapshot
nexus-snapshot
http://localhost:8099/repository/maven-snapshots/
修改settings.xml 增加服务器账号密码信息
nexus-release
admin
admin123
nexus-snapshot
admin
admin123
生成脚手架
mvn archetype: create-from-project 从项目生成脚手架
cd /target/generated-soource/archetype 转到此目录
mvn install 发布到仓库
可以添加到ide的脚手架列表
mvn archetype:generate –DarchetypeCatagory=local 命令行方式创建项目 local参数指定走本地仓库
java工程化_(二)Java工程化--Maven实践(示例代码)相关推荐
- 归并排序 java 迭代_经典排序算法之归并排序(示例代码)
归并排序(英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法,效率为 (大O符号).1945年由约翰·冯·诺伊曼首次提出.该算法是采用分治法(Divide an ...
- 纯java pdf转换成html,JAVA实现PDF转HTML文档的示例代码
本文是基于PDF文档转PNG图片,然后进行图片拼接,拼接后的图片转为base64字符串,然后拼接html文档写入html文件实现PDF文档转HTML文档. 引入Maven依赖 org.apache.p ...
- Java Singleton类中的线程安全性的示例代码
Java Singleton类中的线程安全性的示例代码 Singleton是最广泛使用的创建设计模式之一,用于限制应用程序创建对象.在实际应用程序中,数据库连接或企业信息系统(EIS)等资源是有限的, ...
- 微信公众平台开发(二) 微信公众平台示例代码分析
http://www.cnblogs.com/mchina/archive/2013/06/07/3120592.html 微信公众平台开发(二) 微信公众平台示例代码分析 一.摘要 微信公众平台提供 ...
- java微妙_编码Java时的10个微妙的最佳实践
java微妙 这是10条最佳实践的列表,这些最佳实践比您的平均Josh Bloch有效Java规则要微妙得多. 尽管Josh Bloch的列表很容易学习,并且涉及日常情况,但此处的列表包含了涉及API ...
- java姑娘_初识java这个小姑娘(二)
正版疯狂java讲义第5版编程教材 76.5元 (需用券) 去购买 > 妙解垃圾回收机制 周一,早高峰!!! 五个字,说尽心中的绝望!!! 一段考验一个人耐力.智力.开车技术以及脾气的路. 我把 ...
- java娘_初识java这个小姑娘(二)
妙解垃圾回收机制 周一,早高峰!!! 五个字,说尽心中的绝望!!! 一段考验一个人耐力.智力.开车技术以及脾气的路. 我把车开进了一个没有红绿灯的丁字路口,然后就没有然后了. 来自三个方向的大车小车开 ...
- 21点小游戏java编程_用Java编写一个二十一点小游戏
21点又名黑杰克(Blackjack),起源于法国,已流传到世界各地,有着悠久的历史.现在在世界各地的赌场中都可以看到二十一点,随着互联网的发展,二十一点开始走向网络时代.该游戏由2到6个人玩,使用除 ...
- 尚学堂java培训_送给 Java 自学者或者初学者的最全知识清单,2020 年 Java 就该这么学...
最近逛知乎,发现有很多想自学 Java 或者 Java 初学者提问,不知道如何学习 Java?我接触 Java 快 8 年的时间了,一直从事 Java 开发工作,自己一直升级打怪,对于如何更好的学习 ...
最新文章
- 聊聊事件驱动的架构模式
- java gps 距离计算_java计算两个GPS经纬度之间的距离(转)
- java二叉排序树动态查找表_9.3.1动态查找表—二叉排序树
- 打造炫酷通用的ViewPager指示器 Adapter模式适配所有 1
- FocalLoss的Caffe复现版
- SAP UI5 应用开发教程之二十四 - 如何使用 OData 数据模型
- CF535C Tavas and Karafs 二分 + 结论
- es6 数组去重,数组里面的对象去重
- CLR_via_C#.3rd 翻译[25.9 线程调度和优先权]
- MATLAB BP神经网络的设计与优化
- 【渝粤题库】陕西师范大学201841 比较教育学 作业(专升本)
- Vue动态加载组件的两类方式(import和require)
- 爬取实习僧工作岗位信息
- 抽象类和接口(Java程序设计)
- 慢扫描电视 SSTV
- PHP高级面试题(三)
- 阿里云服务器 远程桌面连接 卡顿
- 塔式服务器系统配置,联想TD350塔式服务器系统安装配置注意事项
- ipv4与ipv6的联系与区别
- [Git] 配置Github Gitee reference加速