云开发日记之linux下无IDE的maven构建maven项目
来源:互联网 发布:利用网络学英语 编辑:程序博客网 时间:2024/06/13 06:19
因为主要在linux下用vim编辑器开发(emacs用户请勿喷),所以记录的是无IDE情况下的maven项目构建方式。
首先阐明使用maven的原因,IBM中文社区牛人已经讲得比较详细,对比了构建项目的两个工具Maven和Ant,链接如下https://www.ibm.com/developerworks/cn/java/j-maven/。Maven采用远程仓库和本地仓库,将pom.xml中定义的jar文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的jar,同一个版本的jar只需下载一次,而且避免每个应用都去拷贝jar。同时它采用了现在流行的插件体系架构,只保留最小的核心,其余功能都通过插件的形式提供,所以maven下载很小,在执行maven任务时,才会自动下载需要的插件。在项目进程中,不必做什么配置,在pom.xml同级目录,使用简单的maven命令,就可以完成初始化->开发->测试->发布的全过程。
接下来开始创建maven项目:
1.建立项目文件,需要建立两个路径,分别是产品代码路径和测试代码路径
基本格式是
my-app
|--pom.xml
`--src
|-- main ------------------------------------负责管理项目主体
| `-- java
| `-- com
| `-- mycompany
| `-- app
| `-- App.java
`--test --------------------------------------负责管理项目测试
`--java
`--com
`--mycompany
`--app
`--AppTest.java
2.pom.xml文件即项目对象模型,建立在项目的根目录下,是maven构建项目的基石,maven根据pom.xml文件中的字段信息管理整个项目。
基本格式是
<projectxmlns="http://maven.apache.org/POM/4.0.0">----父项目的坐标
<modelVersion></modelVersion>---------------------------模型版本
<groupId></groupId>------------------------------------------产品组ID
<artifactId></artifactId>---------------------------------------一般填写项目名称
<version></version>-------------------------------------------产品版本
<packaging></packaging>------------------------------------定义项目将要被打包的格式
<name></name>------------------------------------------------项目名称
<url></url>------------------------------------------------------ITS的URL
<properties>-----------------------------------------------------填写依赖库的版本变量
<jetty.version></jetty.version>
</properties>
<repositories>---------------------------------------------------仓库
<repository>--------------------------------------------------本地仓库或者远程仓库的相关信息
<id></id>
<name></name>
<url></url>-------------------------------------------------仓库URL
</repository>
</repositories>
<pluginRepositories></pluginRepositories>----------------插件仓库定义
<dependencies>-------------------------------------------------依赖包定义
<dependency></dependency>
</dependencies>
<build>----------------------------------------------------------设置编译时的一些参数
<plugins></plugins>----------------------------------------编译需要的插件
</build>
</project>
以上只是列出一些基本的格式,pom文件的详解转一个链接,讲的很详细。http://blog.csdn.net/ithomer/article/details/9332071
3.在项目文件中编写好代码后,使用mvn[clean] package命令编译打包程序,或者使用mvn[clean] test -Dtests=test.java编译测试代码。
4.最后使用java-cp ***.jar ***.main.java启动进程,或者使用java-jar启动jar包格式的进程。
最后整理一下一些maven的命令:
1.mvn clean清空生成的文件
2.mvn package打jar包
3.mvn clean package -DskipTests打jar包并且编译跳过test
4.mvn clean test编译test
5.mvn clean test -Dtest=TestA.java单独编译TestA测试代码
6.mvn jetty:run将项目运行在jetty上
对于mvnpackage以及lifecycle,phase和goal的理解官方文档说得比较清楚。http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
以上简单的介绍了无IDE建maven项目的流程,详细细节以后慢慢补充。
- 云开发日记之linux下无IDE的maven构建maven项目
- Scala-IDE构建Maven项目
- linux下使用maven自动构建项目
- maven之旅之构建自己的maven项目骨架
- maven 项目 的构建
- Maven—初识及IDE构建maven项目。
- maven学习日志之六 Maven项目的灵活构建
- 【Maven】maven 项目构建
- Linux下使用maven+svn构建Java项目
- maven实践 简单的maven项目构建
- 关于 maven 项目的构建
- Maven构建项目的灵活性
- 构建Scala的Maven项目
- 构建maven的SSH项目
- 灵活的构建maven项目
- Maven管理项目的构建
- (原创)使用Maven进行项目构建与开发的心得
- 使用eclipse构建现有的maven项目开发环境
- DRBD元数据
- 树莓派raspbian安装配置(基本配置+中文配置+远程桌面+lighttpd+php+mysql)
- Java的事务
- 基类的虚函数没有实现而引起的错误
- 苹果浏览器实战(六)
- 云开发日记之linux下无IDE的maven构建maven项目
- 笔试题整理
- 云开发日记------junit+mockito单元测试
- c++中vector容器
- [ACM] HDU 1269 迷宫城堡(Tarjan算法求强联通分量)
- CritterAI官方文档翻译【An Introduction to Navigation】
- A Famous Music Composer(南阳oj25)(一道无聊的英文题)
- 东北大学考研线性表相关历年真题题目整理
- 【深度学习笔记】多层感知机,非权值共享型卷积神经网络,权值共享型卷积神经网络之间的关系