Maven

Posted 花娣丫头小愤青

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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插件配置。

  1. <plugins>  
  2.     <plugin>  
  3.         <groupId>org.apache.maven.plugins</groupId>  
  4.         <artifactId>maven-war-plugin</artifactId>  
  5.         <version>3.0.0</version>  
  6.         <configuration>  
  7.             <webResources>  
  8.                 <resource>  
  9.                     <directory>WebContent</directory>  
  10.                 </resource>  
  11.             </webResources>  
  12.         </configuration>  
  13.     </plugin> 
  14. </plugins>  

如果WebContent/WEB-INF/web.xml文件不存在,则按下面的方式配置。 

  1. <plugins>  
  2.     <plugin>  
  3.         <groupId>org.apache.maven.plugins</groupId>  
  4.         <artifactId>maven-war-plugin</artifactId>  
  5.         <version>3.0.0</version>  
  6.         <configuration>  
  7.             <failOnMissingWebXml>false</failOnMissingWebXml>  
  8.         </configuration>  
  9.     </plugin>  
  10. </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>
pom.xml

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>
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>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>
parent
<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>
sub

 查找流程:

  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> 
jsp以及servlet依赖

注意maven3需要jdk1.7或者以上的版本。一定要注意版本的一致性。

 

 

 

 

以上是关于Maven的主要内容,如果未能解决你的问题,请参考以下文章

Spring+SpringMVC+MyBatis+Maven框架整合

关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段

如何在 Apache Felix maven-bundle-plugin 中设置 Provide-Capability 标头?

Maven FTP部署:无法创建目录

如何从詹金斯访问maven属性?

向小军 “小黑” 正式加入 Maven Skateboards