-
maven 3 特性 http://www.developer.com/java/article.php/3908561/Top-10-New-Features-in-Maven-3.htm maven 标准目录 src -main –bin 脚本库 –java java源代码文件 –resources 资源库,会自动复制到classes目录里 –filters 资源过滤文件 –assembly 组件的描述配置(如何打包) –config 配置文件 –webapp web应用的目录。WEB-INF、css、js等 -test –java 单元测试java源代码文件 –resources 测试需要用的资源库 –filters 测试资源过滤库 -site Site(一些文档) target LICENSE.txt Project’s license README.txt Project’s readme src 实践 MVN环境 apache-maven-3.0.4-bin.tar.gz 下载解压,配置MAVEN_HOME 和 添加至PATH 构建工程 >构建app应用 mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false >构建web应用 mvn archetype:generate -DgroupId=com.byread -DartifactId=blogweb -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false 命令 >查看版本|测试|清理 mvn -v mvn test mvn clean >执行项目 mvn package -Dmaven.test.skip=true mvn install -Dmaven.test.skip=true mvn install assembly:assembly >转eclipse项目 mvn eclipse:eclipse >运行函数 mvn exec:java -Dexec.mainClass=com.test.Main java -cp test.jar com.test.Main >查看插件 mvn help:describe -Dplugin=exec -Dfull >查看整个项目依赖的类树结构 mvn dependency:tree >运行jetty 1. mvn jetty:run mvn jetty:run -Djetty.port=8082 2.pom配置 <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>8.0.1.v20110908</version> <configuration> <scanIntervalSeconds>10</scanIntervalSeconds> <webAppConfig> <contextPath>/demo</contextPath> </webAppConfig> </configuration> </plugin> 发布项目 >发布到本地 mvn install:install -file -Dfile=[D:/opensource/dbunit-2.2/dbunit-2.2.jar] -DgroupId=[dbunit] -DartifactId=[junitperf] -Dversion=2.2 -Dpackaging=jar >发布到远程 mvn deploy:deploy -file -DgroupId=[staticComparison] -DartifactId=[static-comparison] -Dversion=2.0 -Dpackaging=jar -Dfile=c:/staticComparison_2.0.jar -Durl=file:Y:\repo 多模块项目 ---- app-parent |-- pom.xml (pom) |-- app-util | |-- pom.xml (jar) |-- app-service | |-- pom.xml (jar) |-- app-dao | |-- pom.xml (jar) |-- app-web |-- pom.xml (war) 构建app-parent、app-util、app-dao、app-service mvn archetype:generate -DgroupId=com.test.app.xxx -DartifactId=app-xxx -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 构建app-web mvn archetype:generate -DgroupId=com.test.app.web -DartifactId=app-web -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false app-parent pom.xml <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.test.app</groupId> <artifactId>app-parent</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <modules> <module>app-util</module> <module>app-dao</module> <module>app-service</module> <module>app-web</module> </modules> </project> app-util pom.xml <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"> <parent> <artifactId>app-parent</artifactId> <groupId>com.test.app</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>com.test.app.util</groupId> <artifactId>app-util</artifactId> <packaging>jar</packaging> <dependencies> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.4</version> </dependency> </dependencies> </project> app-dao pom.xml <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"> <parent> <artifactId>app-parent</artifactId> <groupId>com.test.app</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>com.test.app.dao</groupId> <artifactId>app-dao</artifactId> <packaging>jar</packaging> <dependencies> <dependency> <groupId>com.test.app.util</groupId> <artifactId>app-util</artifactId> <version>${project.version}</version> </dependency> </dependencies> </project> app-service pom.xml(同app-dao pom.xml) app-web pom.xml <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"> <parent> <artifactId>app-parent</artifactId> <groupId>com.test.app</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>com.test.app</groupId> <artifactId>app-web</artifactId> <packaging>war</packaging> <dependencies> <dependency> <groupId>com.test.app.service</groupId> <artifactId>app-service</artifactId> <version>${project.version}</version> </dependency> </dependencies> </project> 注意: 运行时,一定要 mvn package -Dmaven.test.skip=true 否则,请配置junit包! mvn archetype:generate -DgroupId=com.test.app.xxx -DartifactId=app-xxx -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false