163的博客不适合用来作为技术博客,因为博客不支持code标签,贴个代码会很混乱,而且163的博客很少技术文章,收藏一些东西也很麻烦,以上提到的两点不足在javaeye上都完美解决了,所以,我决定还是把技术类的博客记录迁移到javaeye好了
maven这东西,迟早还是得用的
1. maven安装
没啥好说的,http://maven.apache.org/下载安装就是,设置Path,命令行下执行mvn -version能ok就行了
2. 与eclipse集成
设置M2_REPO变量,指向本地仓库
有空就再装个m2eclipse插件呗,反正我的网速慢,是没空装了。。。几十M呢
3. maven创建项目
一般的做法都是
参数太多,记不住,而且运行会出现提示
就是说人家maven都不推荐用这种方式来创建项目了,那还是不要折腾自己了,还是用generate吧
它是交互式的项目创建过程,参数都很好理解
顺便将项目转成eclipse项目,方便导入到eclipse中
完事之后目录大概是这样的,我创建的是simple j2ee项目
4. 关于pom.xml
我觉得maven最好用的就是jar包的管理,不在需要自己去到处搜jar,直接扔到dependency里面就ok,可是现在问题又来了,比如我需要某个jar包,那我怎么知道这个包的groupId和artifactId分别是什么呢?不知道这些信息,那就没法加dependency了
这是我的sample项目pom.xml,难道这些dependency只能靠收集了?
好吧,只好去网上搜个pom.xml,看他们的dependency是怎么写的了
5. maven tomcat plugin
配置tomcat plugin
然后就可以执行
启动tomcat了,不用打包再部署,那太慢,不过我还是习惯在eclipse下用tomcat的,配个context就好了
6. 刚收集了一些maven的其他信息
[code]
validate,验证工程是否正确,所有需要的资源是否可用。
compile,编译项目的源代码。
test-compile,编译项目测试代码。
test,使用已编译的测试代码,测试已编译的源代码。
package,已发布的格式,如jar,将已编译的源代码打包。
integration-test,在集成测试可以运行的环境中处理和发布包。
verify,运行任何检查,验证包是否有效且达到质量标准。
install,把包安装在本地的repository中,可以被其他工程作为依赖来使用
deploy,在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
generate-sources,产生应用需要的任何额外的源代码,如xdoclet。
[/code]
还有据说
[code]
mvn dependency:tree
[/code]
可以看到各个jar的依赖关系树
6. 提取项目的所有依赖包到某个目录
当要给没有装maven的人传项目的时候,这个就有用了
6.5. 利用maven下载jar相应的源代码,这样eclipse就可以debug进去了
7. 相关资料链接
[url=http://eils2000.iteye.com/blog/295779]maven热部署web应用[/url]
[url=http://maven.apache.org/plugins/index.html]mvn各种插件的详细说明[/url]
maven这东西,迟早还是得用的
1. maven安装
没啥好说的,http://maven.apache.org/下载安装就是,设置Path,命令行下执行mvn -version能ok就行了
2. 与eclipse集成
设置M2_REPO变量,指向本地仓库
有空就再装个m2eclipse插件呗,反正我的网速慢,是没空装了。。。几十M呢
3. maven创建项目
一般的做法都是
mvn archetype:create -Dxxx
参数太多,记不住,而且运行会出现提示
[WARNING] This goal is deprecated. Please use mvn archetype:generate instead
就是说人家maven都不推荐用这种方式来创建项目了,那还是不要折腾自己了,还是用generate吧
mvn archetype:generate
它是交互式的项目创建过程,参数都很好理解
顺便将项目转成eclipse项目,方便导入到eclipse中
mvn eclipse:eclipse
完事之后目录大概是这样的,我创建的是simple j2ee项目
| pom.xml
| .classpath
| .project
|
+---src
| +---main
| | +---java
| | | \---com
| | | \---xx
| | | \---simple
| | | App.java
| | | SimpleTest.ja
| | |
| | \---resources
| | log4j.properties
| |
| \---test
| \---java
| \---com
| \---xx
| \---simple
| AppTest.java
|
\---target
+---test-classes
| \---com
| \---xx
| \---simple
| AppTest.class
|
\---classes
| log4j.properties
|
\---com
\---xx
\---simple
App.class
SimpleTest.class
4. 关于pom.xml
我觉得maven最好用的就是jar包的管理,不在需要自己去到处搜jar,直接扔到dependency里面就ok,可是现在问题又来了,比如我需要某个jar包,那我怎么知道这个包的groupId和artifactId分别是什么呢?不知道这些信息,那就没法加dependency了
这是我的sample项目pom.xml,难道这些dependency只能靠收集了?
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxx.simple</groupId>
<artifactId>simple</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>simple</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.simpleframework</groupId>
<artifactId>simple-xml</artifactId>
<version>2.1.3</version>
</dependency>
<!--log4j jar is required-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
</dependencies>
</project>
好吧,只好去网上搜个pom.xml,看他们的dependency是怎么写的了
5. maven tomcat plugin
配置tomcat plugin
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
</plugin>
然后就可以执行
mvn tomcat:run
启动tomcat了,不用打包再部署,那太慢,不过我还是习惯在eclipse下用tomcat的,配个context就好了
6. 刚收集了一些maven的其他信息
[code]
validate,验证工程是否正确,所有需要的资源是否可用。
compile,编译项目的源代码。
test-compile,编译项目测试代码。
test,使用已编译的测试代码,测试已编译的源代码。
package,已发布的格式,如jar,将已编译的源代码打包。
integration-test,在集成测试可以运行的环境中处理和发布包。
verify,运行任何检查,验证包是否有效且达到质量标准。
install,把包安装在本地的repository中,可以被其他工程作为依赖来使用
deploy,在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
generate-sources,产生应用需要的任何额外的源代码,如xdoclet。
[/code]
还有据说
[code]
mvn dependency:tree
[/code]
可以看到各个jar的依赖关系树
6. 提取项目的所有依赖包到某个目录
当要给没有装maven的人传项目的时候,这个就有用了
mvn dependency:copy-dependencies -DoutputDirectory=lib
6.5. 利用maven下载jar相应的源代码,这样eclipse就可以debug进去了
mvn dependency:sources
7. 相关资料链接
[url=http://eils2000.iteye.com/blog/295779]maven热部署web应用[/url]
[url=http://maven.apache.org/plugins/index.html]mvn各种插件的详细说明[/url]