柳志崇,2008 年计算机专业毕业,一直从事于移动互联网及 O2O 新零售业务领域的工作,参与过京东到家多个亿级 PV 系统的研发与架构,对高并发有着丰富的实战经验。
localhost:didi-standard-project didi$ ll /Users/didi/work/git/didi-standard-project
total 32
drwxr-xr-x 11 didi staff 352 7 21 18:14 .
drwxr-xr-x 20 didi staff 640 7 21 18:12 ..
drwxr-xr-x 12 didi staff 384 7 21 18:10 .idea
-rw-r--r-- 1 didi staff 51 7 21 12:33 README.md
drwxr-xr-x 6 didi staff 192 7 21 18:14 didi-standard-project-dao
drwxr-xr-x 5 didi staff 160 7 21 18:14 didi-standard-project-domain
drwxr-xr-x 5 didi staff 160 7 21 18:14 didi-standard-project-service
drwxr-xr-x 5 didi staff 160 7 21 18:14 didi-standard-project-util
drwxr-xr-x 5 didi staff 160 7 21 18:14 didi-standard-project-web
-rw-r--r-- 1 didi staff 2938 7 21 16:34 didi-standard-project.iml
-rw-r--r-- 1 didi staff 5353 7 21 16:44 pom.xml
cd /Users/didi/work/git/didi-standard-project
mvn archetype:create-from-project
执行成功后会在现有项目根目录新增一个文件夹,名字叫做target,预览下该目录
$ tree /Users/didi/work/git/didi-standard-project/target/ -L 6
/Users/didi/work/git/didi-standard-project/target/
└── generated-sources
└── archetype
├── pom.xml
├── src
│ ├── main
│ │ └── resources
│ │ ├── META-INF
│ │ └── archetype-resources
│ └── test
│ └── resources
│ └── projects
└── target
├── classes
│ ├── META-INF
│ │ └── maven
│ └── archetype-resources
│ ├── README.md
│ ├── __artifactId__.iml
│ ├── __rootArtifactId__-dao
│ ├── __rootArtifactId__-domain
│ ├── __rootArtifactId__-service
│ ├── __rootArtifactId__-util
│ ├── __rootArtifactId__-web
│ └── pom.xml
├── didi-standard-project-archetype-1.0.0-SNAPSHOT.jar
└── test-classes
└── projects
└── basic
23 directories, 5 files
cd /Users/didi/work/git/didi-standard-project/target/generated-sources/archetype/
mvn install
正常情况下maven仓库目录下会新建一个名叫archetype-catalog.xml的文件
得到maven仓库路径
mvn help:evaluate -Dexpression=settings.localRepository | grep -v '\[INFO\]'
/Users/didi/.m2/repository
archetype-catalog.xml具体内容如下
more /Users/didi/.m2/repository/archetype-catalog.xml
com.xxx
didi-standard-project-archetype
1.0.0-SNAPSHOT
项目脚手架,初衷是方便大家快速创建Java工程,有兴趣的小伙伴可以加入进来一起完善。
cd /Users/didi/work/temp
mvn archetype:generate -DarchetypeCatalog=local
接下来依次输入:
1: local -> com.xxx:didi-standard-project-archetype (项目脚手架,初衷是方便大家快速创建Java工程,有兴趣的小伙伴可以加入进来一起完善。)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : 1
Define value for property 'groupId': com.alioo
Define value for property 'artifactId': hello3
Define value for property 'version' 1.0-SNAPSHOT: : 1.0.0-SNAPSHOT
Define value for property 'package' com.alioo: : com.alioo.dd
Confirm properties configuration:
groupId: com.alioo
artifactId: hello3
version: 1.0.0-SNAPSHOT
package: com.alioo.dd
Y:
至此已经根据模板生成好新项目了,快来看看吧
tree hello3
hello3
├── README.md
├── hello3-dao
│ ├── pom.xml
│ └── src
│ └── main
│ ├── java
│ │ └── com
│ │ └── alioo
│ │ └── dd
│ │ └── dao
│ │ └── XxxDAO.java
│ └── resources
│ ├── db
│ │ └── migration
│ │ └── V1_1__init.sql
│ └── mybatis
│ └── mybatis-conf.xml
├── hello3-domain
│ ├── pom.xml
│ └── src
│ └── main
│ └── java
│ └── com
│ └── alioo
│ └── dd
│ ├── constant
│ │ ├── Constant.java
│ │ └── WEB_STATUS.java
│ └── domain
│ ├── XxxDto.java
│ └── base
│ ├── HttpClientResponse.java
│ ├── Page.java
│ ├── Response.java
│ └── RestApiResponse.java
├── hello3-service
│ ├── pom.xml
│ └── src
│ └── main
│ └── java
│ └── com
│ └── alioo
│ └── dd
│ └── service
│ ├── XxxService.java
│ └── XxxServiceImpl.java
├── hello3-util
│ ├── pom.xml
│ └── src
│ └── main
│ └── java
│ └── com
│ └── alioo
│ └── dd
│ ├── exception
│ │ ├── AppException.java
│ │ ├── AppExecutionException.java
│ │ ├── BadRequestException.java
│ │ ├── FileTypeNotSupportException.java
│ │ ├── GlobalExceptionHandler.java
│ │ ├── InvalidParameterException.java
│ │ ├── NotLoginException.java
│ │ ├── OperationForbiddenException.java
│ │ ├── ParamErrorException.java
│ │ └── ResourceNotFoundException.java
│ └── util
│ ├── CommonBeanUtil.java
│ ├── CookieUtil.java
│ ├── DateTimeUtil.java
│ ├── FileUtil.java
│ ├── HandlerMethodUtils.java
│ ├── HttpClient.java
│ ├── JsonUtil.java
│ ├── StringUtil.java
│ └── spring
│ └── SpringUtil.java
├── hello3-web
│ ├── pom.xml
│ └── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── alioo
│ │ │ └── dd
│ │ │ └── web
│ │ │ ├── WebMain.java
│ │ │ ├── config
│ │ │ │ ├── FlywayConfiguration.java
│ │ │ │ ├── InterceptorConfig.java
│ │ │ │ └── Swagger2Configuration.java
│ │ │ ├── controller
│ │ │ │ ├── AliasController.java
│ │ │ │ └── rest
│ │ │ │ └── test
│ │ │ │ └── RestTestController.java
│ │ │ └── interceptor
│ │ │ ├── LoginInterceptor.java
│ │ │ └── annotation
│ │ │ └── LoginNoRequired.java
│ │ └── resources
│ │ ├── application.yml
│ │ └── logback-spring.xml
│ └── test
│ ├── java
│ │ └── com
│ │ └── alioo
│ │ └── dd
│ │ └── dbhelper
│ │ ├── Config.java
│ │ ├── ToDAO.java
│ │ ├── ToModel.java
│ │ └── Utils.java
│ └── resources
│ ├── application.yml
│ └── logback-spring.xml
└── pom.xml
62 directories, 54 files
在前面执行mvn install改成mvn deploy即可上传到私服,上传私服需要注意在pom.xml(pom.xml路径:/Users/didi/work/git/didi-standard-project/target/generated-sources/archetype/pom.xml)中添加如下内容
central
artifactory-main-releases
http://artifactory.xxx.com:80/artifactory/libs-release
snapshots
artifactory-main-snapshots
http://artifactory.xxx.com:80/artifactory/libs-snapshot
观察日志deploy是否成功,可以进一步到私服控制台(一般情况私服网址是artifactory.xxx.com/)上去检查确认
mvn archetype:generate -DarchetypeGroupId=com.xxx -DarchetypeArtifactId=didi-standard-project-archetype -DarchetypeVersion=1.0.0-SNAPSHOT -DarchetypeRepository=local
小提示:
baseprofile
central
Nexus Repository
http://artifactory.xxx.com/artifactory/public/
true
true
${user.home}/.m2/repository
baseprofile