Maven
下载Maven:http://maven.apache.org/download.html
解压maven到软件安装常用目录如: D:\Softwares\apache-maven-3.2.2
配置Maven环境变量:添加新的系统环境变量MAVEN_HOME, 并设置其值为你安装的目录 MAVEN_HOME= D:\Softwares\apache-maven-3.2.2
更新系统PATH 变量, 添加;%MAVEN_HOME%\bin;到尾部
测试maven配置是否成功打开命令行窗口,输入mvn -v,如果有maven 版本信息输出则证明配置成功,否则请查看自己配置路径等是否正确。
注意:安装maven前请确保已安装JDK并成功配置其环境变量。
建库
到达工程所在的目录:F:\work_space\helloworld
cmd命令行:
mvn clean命令:target目录就没有了
mvn test命令:再次查看target文件目录,主要用来测试用
mvn package命令:
出错如下:
问题现象:
用Maven打包时,报Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war错误。
原因分析:
打包时在WebContent/WEB-INF/文件夹下找不到web.xml文件。
解决方案:
如果WebContent/WEB-INF/web.xml文件存在,需要在pom.xml文件的<build>节点中,加上maven-war-plugin插件配置。
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <version>3.0.0</version>
- <configuration>
- <webResources>
- <resource>
- <directory>WebContent</directory>
- </resource>
- </webResources>
- </configuration>
- </plugin>
- </plugins>
如果WebContent/WEB-INF/web.xml文件不存在,则按下面的方式配置。
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <version>3.0.0</version>
- <configuration>
- <failOnMissingWebXml>false</failOnMissingWebXml>
- </configuration>
- </plugin>
- </plugins>
说明: target/classes 编译后的类的路径
target/test-classes编译后的测试类的路径
target/surefire-reports测试报告
target/maven-archiver 执行package的归档
Hello-0.0.1-SNAPSHOT.jar 执行完package命令后打成的jar包
在对子工程mvn compile时报错:
解决方案:
把父工程以及子工程pom.xml文件的 <packaging>war</packaging> 配置去掉。否则打包成war包,无法加载。实际需要jar包
MyEclipse中Maven build...项目控制台不输出log 没有反应:
右击maven项目:Build Path ---> configure Build Path... ---> 先选中你当前的jdk remove掉 ,然后重新添加 ----> Add Library ---> 选择 JRE System Library ---> 选择Alternate JRE
---> 然后点击installed JRES 进入界面后选择你要用的jdk版本 ---> edit ---> 在Default VM arguments 添加 : -Dmaven.multiModuleProjectDirectory=$MAVEN_HOME
依赖关系示例:
huadiyatouHello:pom.xml
<projectxmlns="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.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com</groupId><artifactId>huadiyatouHello</artifactId><version>0.0.1-SNAPSHOT</version><name>huadiyatouHello</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.9</version><scope>test</scope></dependency></dependencies></project>
huadiyatouHelloFriend: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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com</groupId> <artifactId>huadiyatouHelloFirend</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>huadiyatouHelloFirend</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>test</scope> </dependency> <dependency> <groupId>com</groupId> <artifactId>huadiyatouHello</artifactId> <version>0.0.1-SNAPSHOT</version> <scope>compile</scope> </dependency> </dependencies> </project>
继续关系:
<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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com</groupId> <artifactId>huadiyatouParent</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <name>huadiyatouParent</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>com</groupId> <artifactId>huadiyatouHello</artifactId> <version>0.0.1-SNAPSHOT</version> <scope>compile</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>test</scope> </dependency> </dependencies> </project>
<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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com</groupId> <artifactId>huadiyatouSub</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <parent> <groupId>com</groupId> <artifactId>huadiyatouParent</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../huadiyatouParent</relativePath> </parent> <name>huadiyatouSub</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> </dependencies> </project>
查找流程:
1、执行mvn compile 命令 ,首先回到pom.xml文件中查找该项目的依赖和继承关系。
2、根据这个关系去仓库查找相应的JAR包,这样工程环境就配置好了
3、然后mvn compile 启动maven框架,到仓库\org\apache\maven\plugins目录下,查找相应的插件。这样就会有相应的命令出现。
同步私服以及外网的资源库。
错误解决:
(1)、在项目上右键——【Maven】——【Update Project Configuration……】这时会打开一个(Update Maven Dependencies)的对话框,然后勾选住出错的项目,点击Ok。搞定
(2)、创建maven webapp时,工程项目名总是添加Maven WebApp的后缀,如,如何解决?如下设置
选中下面的Advanced中Name template:---》artifactId,选中这个单词后便成功了。
错误:
ERROR: Error compiling file: F:\workspace\architecture1\goodsmgrweb\target\tmp\jsp\org\apache\jsp\index_jsp.java
[WARNING] /goods/
org.apache.jasper.JasperException: PWC6033: Unable to compile class for JSP
解决方案:在web的pom.xml中加入依赖如下
<dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency>
注意maven3需要jdk1.7或者以上的版本。一定要注意版本的一致性。