博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Eclipse-Maven-git做Java开发(17)--maven项目初步
阅读量:6162 次
发布时间:2019-06-21

本文共 7548 字,大约阅读时间需要 25 分钟。

hot3.png

        本系列博文有很长一段时间没有更新了,一切源于这期间由一些其他时请需要处理,同时自己也有点松懈了,接下来需要追赶上来了。

        本文将演示使用eclipse中的maven进行简单的项目的依赖管理、打包配置以及进行打包。

0、准备工作

        eclipse中创建全空的maven项目(packaging为jar),如果不清楚的,可以参考前面的文章。

        刚创建完成之后,文件树是这样的

BlogExample2├── .classpath├── .git│   ├── branches│   ├── config│   ├── FETCH_HEAD│   ├── HEAD│   ├── hooks│   ├── index│   ├── logs│   │   ├── HEAD│   │   └── refs│   │       ├── heads│   │       │   └── master│   │       └── remotes│   │           └── origin│   │               └── master│   ├── objects│   │   ├── 09│   │   │   └── 0de75a2fb3f838ed0e09b06245beac15375223│   │   ├── 36│   │   │   └── c8b0cdf2d254b97d1dbd56873a5e5ff3c89402│   │   ├── aa│   │   │   └── 461803a95b3ebff7356772ea379029694fce09│   │   ├── d6│   │   │   └── 9a0381ef76acc3e0cd248aae28de88b5b00c95│   │   ├── db│   │   │   └── 9ae43e25a6aa124f886fd9dccbff8c4ffdf81f│   │   ├── info│   │   └── pack│   │       ├── pack-b98bb4645cb790f02c640335d24f5a934ea93be8.idx│   │       └── pack-b98bb4645cb790f02c640335d24f5a934ea93be8.pack│   └── refs│       ├── heads│       │   └── master│       ├── remotes│       │   └── origin│       │       └── master│       └── tags├── .gitignore├── LICENSE├── pom.xml├── .project├── README.md├── .settings│   ├── org.eclipse.core.resources.prefs│   ├── org.eclipse.jdt.core.prefs│   └── org.eclipse.m2e.core.prefs└── target    ├── classes    └── test-classes

1、配置编码

        为了避免和解决各种由于编码不一致导致的问题,我们需要对我们的项目配置统一的编码,一般设置为UTF-8编码,需要在pom.xml中配置

UTF-8
UTF-8

2、配置依赖

        我们经常需要依赖其他的库来完成代码编写,一般我们可以在相关库的介绍中找到maven依赖配置信息,如果没有,可以通过进行搜索。

        对于一个依赖,我们一般需要配置3项:groupId、artifactId、version,对于少数情况,我们还需要配置scope。前三项是唯一确定依赖库的三元素,后面那一项是为了告诉maven这个依赖的使用范围。

        假设我们需要依赖mysql的jdbc驱动,我们需要配置:

mysql
mysql-connector-java
${version.mysql-jdbc}
${prop.depScope}

        这个,我将版本和范围都使用了变量的方式来配置,这两个变量需要在标签<properties>中进行配置,如:

5.1.38
provided

        采用这种变量的方式配置,好处在于可以重复使用这个变量,因为有一些依赖库是需要配置几个依赖的,如spring、log4j2,这样就可以做到一改全改,方便维护,请看这个:

4.2.6.RELEASE
2.5
compile
org.springframework
spring-jdbc
${version.spring}
${prop.depScope}
org.springframework
spring-webmvc
${version.spring}
${prop.depScope}
org.springframework
spring-context-support
${version.spring}
${prop.depScope}
org.apache.logging.log4j
log4j-jcl
${version.log4j}
${prop.depScope}
org.apache.logging.log4j
log4j-web
${version.log4j}
${prop.depScope}

3、配置打包插件

        配置了依赖,就可以愉快的写代码了,然后代码携带一定时候就需要打包、测试了,这个时候就需要配置相应的打包的配置了。maven默认的关于打包的配置已经使得你能够不进行任何配置了,但是对于某些有特别需求的场景还时需要进行配置的。

        除了

xxxx

        这个配置以外,所有的关于打包的配置都在<build>标签里面,主要是关于源代码文件路径、配置文件路径、输出文件名、输出路径、编译参数、打包包含和排除文件、javadoc生成等等。很多都是以插件的形式提供,也有部分配置是直接标签进行配置,官方插件可以参看进行配置。

1.8
8
3.5.1
2.6
3.0.0
2.7
2.19.1
2.6
3.0.0
2.10.3
1.6
org.apache.maven.plugins
maven-compiler-plugin
${version.compiler-plugin}
${version.java}
${version.java}
org.apache.maven.plugins
maven-jar-plugin
${version.jar-plugin}
org.apache.maven.plugins
maven-war-plugin
${version.war-plugin}
false
org.apache.maven.plugins
maven-source-plugin
${version.source-plugin}
attach-sources
jar-no-fork
true
org.apache.maven.plugins
maven-javadoc-plugin
${version.javadoc-plugin}
package
jar
http://docs.oracle.com/javase/${version.javadoc}/docs/api

        在配置插件的时候,对于groupId为org.apache.maven.plugins的插件其实时可以不用配置groupId的,但是配置上看起来更完整一些。

        下面来配置一个关于使用第三方插件为javaFX应用打包系统直接可以运行程序的包的配置。

2.6
8.4.0
JavaFXnative
com.zenjava
javafx-maven-plugin
${version.javafx-maven-plugin}
com.zycoo.billing.Main
${project.build.finalName}-${project.version}
${basedir}/src/deploy
true
true
zycoo

       插件的github地址和官方文档说明。

4、打包和本地安装

        关于打包,很简单,在项目上面右键-run as-maven build/maven install等等,只不过build的时候一般会叫你输入运行的命令,一般情况下都填写“clean package”,这相当于直接在命令行运行“mvn clean package”。

       对于上面的javaFX打包,因为本身需要执行“mvn clean jfx:native”所以需要输入“clean jfx:native”.

5、配置父模块

        类似于面向对象中的父类,maven支持本pom.xml继承于某一packaging类型为pom的模块,以便于实现配置的集中管理。

       各大开源项目都使用了这种方式进行配置。

       配置使用标签<parent>配置,下面进行举例:

cn.songxinqiang
oss-parent
1.6

6、小结

        本文虽然对一般的maven项目的配置的各个方面都涉及说明了,但是对于很多具体的、特殊的需求并没有很深入的讲解,毕竟本文只是一篇入门的文章,很多“高级”的用法都还需要慢慢在实际使用中进行摸索。后续会继续推出maven使用的文章,届时会专注于某一个小的方面的问题进行讲述,那就会详细得多。

       本文涉及的很多通用的配置,我都作为开源项目托管到git上面了,请参看下面的地址:

              

              

       同时也发布到了maven中央仓库,你如果想使用的话,直接配置<parent>标签即可:

cn.songxinqiang
oss-parent
1.6
cn.songxinqiang
ssmv-parent
1.0.1

          如有不对的地方,还望指正!!

          enjoy!

转载于:https://my.oschina.net/songxinqiang/blog/708363

你可能感兴趣的文章
JavaAPI详解系列(1):String类(1)
查看>>
HTML条件注释判断IE<!--[if IE]><!--[if lt IE 9]>
查看>>
发布和逸出-构造过程中使this引用逸出
查看>>
使用SanLock建立简单的HA服务
查看>>
Subversion使用Redmine帐户验证简单应用、高级应用以及优化
查看>>
Javascript Ajax 异步请求
查看>>
DBCP连接池
查看>>
cannot run programing "db2"
查看>>
mysql做主从relay-log问题
查看>>
Docker镜像与容器命令
查看>>
批量删除oracle中以相同类型字母开头的表
查看>>
Java基础学习总结(4)——对象转型
查看>>
BZOJ3239Discrete Logging——BSGS
查看>>
SpringMVC权限管理
查看>>
spring 整合 redis 配置
查看>>
cacti分组发飞信模块开发
查看>>
浅析LUA中游戏脚本语言之魔兽世界
查看>>
飞翔的秘密
查看>>
Red Hat 安装源包出错 Package xxx.rpm is not signed
查看>>
编译安装mysql-5.6.16.tar.gz
查看>>