网上查找资料 ,自己 看看
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/验证是否部署成功。