Maven3.0.3 入门

 网上查找资料 ,自己 看看

 

Maven3.0.3 入门

创建工程存放目录: E:\maven3 ,开始->cmd, cd E:\maven3

1、创建一个工程的命令:

mvn archetype:create -DgroupId=cn.cdm -DartifactId=app
该工程的groupId是cn.cdm,那么该工程的源代码文件将放在java包cn.cdm中。
artifactId是app,那么该工程的根目录名称将为app,即该项目为app ;

   进入app,即(cd E:\maven3\app) ,并执行mvn compile,然后会在该目录下发现新生成的目录target\classes,即编译后的class文件(包括它的包目录)就放在了这里。
   执行命令 mvn clean,会清除本工程的所有输出,在本例子中,就是删除了target目录。
   执行命令 mvn install,会把本例子输出的jar发布到maven库里。如果没有调整设置的话,localRepository在~/.m2/repository,比如C:\Documents and Settings\Administrator\.m2\repository,我的机器是调整过了,所以在E:\Maven3\app\m3\repository。
  
  
2、创建一个web工程的命令:
mvn archetype:create -DgroupId=cn.cdm -DartifactId= webApp -DarchetypeArtifactId=maven-archetype-webapp
web工程与普通工程的差别是多一个属性archetypeArtifacttId,该属性的值为maven-archetype-webapp。即告诉Maven,将要创建的工程是一个Web应用工程。创建app工程时没有使用该属性值,是由于archetype默认创建的是应用程序工程。

 

需要到创建的webApp目录中的src\下创建

src/main/java

src/test/java

src/test/resources

在java build path 中修改四个文件class文件输出路径
            src/main/java src/java/resources 选择target/classes
            src/test/java src/test/resources 选择target/test-classes
        修改项目jdk以及compiler
        把项目转换成dynamic web--右键项目,选择project facets--配置project facets
        设置部署程序集--右键项目,选择deployment assembly,并进行相关配置


3、将maven3.0.3项目转换为eclipse项目

  进入maven的项目目录,用 mvn eclipse:eclipse生成eclipse项目;
  执行完后,生成eclipse的工程文件;
  调整eclipse的classpath变量(用于指向maven的本地库的目录),选择eclipse Window-->Preferences -->Java-->Build Path-->ClassPath Variables,增加一个M2_REPO变量,选择maven的本地库的目录(E:\Maven3\app\m3\repository).
  工程导入:File-->Import-->Existing Projects into Workspace-->Select root directory,完成导入
  或者 在eclipse的 Project Expor中 右键 Import-->Maven-->Existing Maven Projects-->Select root Directory,完成导入(我都是用这个) ;
 
 
 
 
maven3实战之maven使用入门(打包和运行)

----------

 

将项目进行编译,测试之后,下一个重要步骤就是打包。pom.xml中如果没有指定打包类型,默认打包类型为:jar。我们可以简单地执行命令打包: mvn clean pachage。

类似地,maven会在打包之前执行编译,测试等操作。如以打jar包为例,jar:jar任务负责打包,实际上就是jar插件的jar目标将项目主代码打包成一个名为xxxxxx-1.0-SNAPSHOT.jar的文件。该文件也位于target/输出目录中,它是根据artifact-version.jar的规则进行命名的,如有需要,还可以使用finalName来自定义该文件的名称,这里暂且不展开,后面会详细解释。

在打包之后,又执行了安装任务install:install。从输出可以看到任务将项目输出的jar安装到了maven本地仓库中,可以打开相应的文件夹看到项目的pom和jar。之前我们说只有构件被下载到本地仓库后,才能由所有Maven项目使用,这里同样的道理,只有将自己编写的项目安装到本地仓库之后,其他maven项目才能使用它。

我们已经体验了maven最主要的命令:mvn clean compile,mvn clean test,mvn clean package,mvn clean install。执行test之前是会先执行compile的,执行package之前是会先执行test的,而类似地,install之前会执行package。可以在任何一个maven项目中执行这些命令。

默认打包是生成jar的,如果我的项目还有main方法的,我想打包成可执行的jar包,为了生成可执行的jar文件,需要借助maven-shade-plugin,配置该插件如下:

 

 

Xml代码 
1.<plugin> 
2.    <groupId>org.apache.maven.plugins</groupId> 
3.    <artifactId>maven-shade-plugin</artifactId> 
4.    <version>1.2.1</version> 
5.    <executions> 
6.        <execution> 
7.            <phase>package</phase> 
8.            <goals> 
9.                <goal>shade</goal> 
10.            </goals> 
11.            <configuration> 
12.                <transformers> 
13.                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
14.                        <mainClass>com.juvenxu.mvnbook.helloworld.HelloWorld</mainClass> 
15.                    </transformer> 
16.                </transformers> 
17.            </configuration> 
18.        </execution> 
19.    </executions> 
20.</plugin> 
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>1.2.1</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <mainClass>com.juvenxu.mvnbook.helloworld.HelloWorld</mainClass>
                    </transformer>
                </transformers>
            </configuration>
        </execution>
    </executions>
</plugin>

 

默认打包生成jar是不能够直接运行的,因为带有main方法的类信息不会添加到manifest中(打开jar文件中的META-INF/MANIFEST.MF文件,将无法看到Main-Class一行)。

plugin元素在POM中的相对位置应该在<project><build><plugins>下面。我们配置了mainClass为com.juvenxu.mvnbook.helloworld.HelloWorld,项目在打包时会将该信息放到MANIFEST中。现在执行mvn clean install,待构建完成之后打开target/目录,可以看到hello-world-1.0-SNAPSHOT.jar和original-hello-world-1.0-SNAPSHOT.jar,前者是带有Main-Class信息的可执行jar,后者是原始的jar,打开hello-world-1.0-SNAPSHOT.jar的META-INF/MANIFEST.MF,可以看到它包含这样一行信息:

Main-Class:com.juvenxu.mvnbook.helloworld.HelloWorld

现在,在项目根目录中执行该jar文件:

D:\code\hello-world > java-jar target\hello-world-1.0-SNAPSHOT.jar,可以得到正确的输出了。

mvn compiler:compile 将java文件编译至target/class目录

mvn resources:resources 拷贝properties文件至target/classes相应的目录下

mvn clean 清除target目录

mvn clean compile 完成mvn clean/mvn resources:resources/mvn compiler:compile三个命令

mvn package 打包class和properties并输出到target文件夹

mvn install:install 打包并安装到本地仓库

mvn clean:clean 表示的意思是clean插件的clean目标其他同理

mvn archetype:generate 创建项目架构

mvn dependency:list/mvn dependency:tree 查看项目中所有以来的具体信息

 


scope为test表示该包只在测试范围内有效,测试代码中import是没问题,如果是主代码中应用则不行,默认scope的值为compile,表示该以来对测试代码和主代码都有效

 

我想使用到jdbc的oracle驱动,但是这个在apache项目中并不开源,所以只能先将本地的jar安装到本地仓库

mvn install:install-file -Dfile=E:\workspace\seasky\WebRoot\WEB-INF\lib\ojdbc-14.jar -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar

-Dfile 当前jar目录

-DgroupId/-DartifactId 安装到本地仓库的groupId和artifactId

安装完以后可以在pom.xml中如下配置

<dependency>
     <groupId>com.oracle</groupId>
     <artifactId>ojdbc14</artifactId>
     <version>10.2.0.4.0</version>

</dependency>


maven常用命令
常用命令为 :
    mvn archetype:create :创建 Maven 项目
    mvn compile :编译源代码
    mvn test-compile :编译测试代码
    mvn test : 运行应用程序中的单元测试
    mvn site : 生成项目相关信息的网站
    mvn clean :清除目标目录中的生成结果
    mvn package : 依据项目生成 jar 文件
    mvn install :在本地 Repository 中安装 jar(mvn install -D maven.test.skip=true 跳过TestCase检验,否则在install时会运行TestCase测试)
    mvn deploy:将jar包发布到远程仓库
    mvn eclipse:eclipse :生成 Eclipse 项目文件


生成项目
   建一个 JAVA 项目 : mvn archetype:create -DgroupId=com.test -DartifactId=App
   建一个 web 项目 : mvn archetype:create -DgroupId=com.test -DartifactId=web-app -DarchetypeArtifactId=maven-archetype-webapp

 

将已有的项目转变为maven项目

创建如下新的Maven目录结构:

·       将所有已经存在的java源文件移到“\src\main\java”

·       将“web.xml”文件移到“\src\main\webapp\WEB-INF”

·       创建一个新的文件,命名为“pom.xml”,放到项目的根目录下

项目目录结构\--projectname
   \--src
      \--main
         \--java (all java source here)
      \--test
         \--- (all unit test here)
      \--webapp
         \--WEB-INF
            \--web.xml

在“pom.xml”文件中填写已经存在的项目详细信息,添加远程资源库、war插件和编译插件。

填写项目详细信息<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.0http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.test</groupId>
  <artifactId>webdemo</artifactId>
  <packaging>jar</packaging>
  <version>1.0</version>
  <name>serlvetdemo</name>
  <url>http://maven.apache.org</url>

  <repositories>
    <repository>
      <id>java.net</id>
      <url>http://download.java.net/maven/2</url>
    </repository>
  </repositories>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <webResources>
            <resource>
              <directory>${basedir}/src/main/java</directory>
              <targetPath>WEB-INF/classes</targetPath>
              <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
                <include>**/*.css</include>
                <include>**/*.html</include>
              </includes>
            </resource>
          </webResources>
        </configuration>
      </plugin>

      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.6</source>
            <target>1.6</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

编译项目 C:\Users\lxh\workspace>\webdemo>mvn compile


接着,将基于Maven的项目转换为支持Eclipse IDE。

mvn eclipse:eclipse –Dwtpversion=2.0

然后,我们可以将该项目导入到Eclipse IDE了。

使用“mvn war:war”生成项目的WAR文件,新生成的WAR文件将位于“/rootproject/target”目录下,名为“servletdemo-1.0.war”,Maven将会自动地把所有的依赖库、类和部署结构打包在一起。

4.构建项目

要构建基于Maven的项目,打开控制台,使用cd命令进入到项目目录下(pom.xml文件所在目录),使用如下的命令: mvn package。

这将执行Maven的“package”(打包)阶段。

Maven构建生命周期:Maven的运行是分阶段逐步进行的,因此,当“package”阶段被执行时,它之前的所有阶段-“validate”、“compile”、“test”,包括当前的阶段“package”,都将被顺序地执行。

Pom.xml文件中

<packaging>jar</packaging>


jar 生成jar文件 ,war 生成war包

5.maven 的war部署到Tomcat服务器中

使用管理员访问权限为Tomcat添加一个用户。要添加Tomcat用户,编辑这个文件Tomcat安装目录/conf/tomcat-users.xml”。

文件:tomcat-users.xml<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
    <role rolename="manager"/>
    <role rolename="admin"/>
    <user username="admin" password="password" roles="admin,manager"/>
</tomcat-users>

在Maven站点中,我们需要在“MAVEN安装目录/conf/settings.xml”中添加相同的用户验证信息。

<server>
    <id>TomcatServer</id>
    <username>admin</username>
    <password>password</password>
</server>


pom.xml文件 添加tomcat 的plugin配置文件

<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</groupId>
  <artifactId>webtest</artifactId>
  <packaging>war</packaging>
  <version>1.0</version>
  <name> xuejavaweb-core Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <build>
    <plugins>

      <!-- Maven Tomcat Plugin -->
      <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>tomcat-maven-plugin</artifactId>
          <configuration>
              <url>http://127.0.0.1:8080/manager</url>
              <server>TomcatServer</server>
              <path>/webtest</path>
          </configuration>
      </plugin>

      <!-- Maven compiler plugin -->
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.6</source>
            <target>1.6</target>
        </configuration>
      </plugin>

    </plugins>

  </build>
</project>

命令窗口中切换到 C:\Users\lxh\workspace>webtest

使用“mvn tomcat:deploy”命令来将项目打包成一个WAR文件,并将其部署到Tomcat服务器

URL:http://127.0.0.1:8080/manager/验证是否部署成功。

 


 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值