如何通过CND指令创建一个新的Maven 项目,已经如何部署到tomcat 的webapps目录下

*****************事先先明,该文章来自与百度查找,以及自己作为一个萌新,所遇到的一系列小问题,如有冒犯,敬请原谅****************

首先:先解释一下何为Maven,以及写Java时的Maven项目的好处(个人认为):

Apache Maven是一个软件项目管理和综合工具。基于项目对象模型(POM)的概念,Maven可以从一个中心资料片管理项目构建,报告和文件。通俗来讲,Maven是一个管理器,可以在不同的IDEA下都能运行,以及编辑。

所以便有第一个好处了,如果自己单独开发一个后台管理系统,或者软件时,只要通过Myeclipse或者Eclipse EE 创建一个JavaWEB项目便行,而且部署上线相当方便,只要把webRoot拉到Tomcat的webapps目录下即可;但是当出去工作时,公司一般会安排组员在一起完成一个不大不小的项目,那么问题就来了,Myeclipse创建的web项目,需要组员有相同的工作环境才能运行,例如JDK,以及Jar包什么的,这样子就会带来不同程度的麻烦,毕竟每个人的电脑配置不同,所以这个时候,maven的存在就相当重要,maven 项目的jar,以及jdk的版本,运行环境都会pom.xml里面,而且可以通过各种IDEA打开,比如myeclipse,VS Code也是可以打开(而且它是轻量级的编辑器,运行速度会比myeclipse好点,可以去试试,会很容易上手的,主要也是有很多插件,所以不会太难操作)。

如何通过CND指令创建一个新的Maven 项目,已经如何部署到tomcat 的webapps目录下

启动的配置的话,我的项目是这样的:如何通过CND指令创建一个新的Maven 项目,已经如何部署到tomcat 的webapps目录下

另外maven会自动服务器的jar包,所以有些框架加入jar时,需要把tomcat的jar删掉,以及webapp 一定要在 /src /main 下,和/src/main/java 是同一级目录。 

******************

在补充一句:如何组员之间是通过GitHub存储交互项目时,只要上传src 下的所有文件 以及pom.xml 文件就可以了,提醒一句:push项目时,先put一下,在commit,在push之前一定要put和commit一下,还有本机谨慎删除,删除便是真正的删除,虽然可以通过log找回以前的版本,但是还是谨慎删除。

*******************

接下来,便说如何通过CND 来创建maven项目:

先简单粗暴的写出指令 :

mvn -B archetype:generate \ -DarchetypeGroupId=org.apache.maven.archetypes \ -DgroupId=com.mycompany.app \ -DartifactId=my-app

这条指令是需要有下载maven的情况下才能使用的,至于如何下载安装配置环境变量,需要自己百度查找,我在这里就不写出来了。以及需要修改一些配置,需要添加 阿里的代理仓库,毕竟maven是国外,有时编译时会影响速度,搜索关键字 :window下maven的安装以及配置,maven的阿里代理仓库。

以下为指令的注解:

如何通过CND指令创建一个新的Maven 项目,已经如何部署到tomcat 的webapps目录下

如何通过CND指令创建一个新的Maven 项目,已经如何部署到tomcat 的webapps目录下

看到这个便代表项目新建成功

如何通过CND指令创建一个新的Maven 项目,已经如何部署到tomcat 的webapps目录下

********************************华丽丽的分割线********************************************************************************

接下来便讲下如何部署maven到tomcat的目录下:

1.Tomcat7/Tomcat 8的用户及权限配置:在conf目录下,找到tomcat-users.xml,添加manager权限的用户。

<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>

<user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>

2.Maven的Server的配置:在Maven的安装路径找到conf目录下的setting.xml文件,在<servers>节点中添加tomcat7下配置的用户信息(id可以任意填写,但username和password必须和步骤1一致):
<server>
    <id>tomcat7</id>
    <username>admin</username>
    <password>admin</password>

</server>

3.在Maven项目的pom.xml文件的<plugins>节点中,添加tomcat7的maven插件
<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.1</version>

    <configuration>

<!-- 修改了tomcat环境变量一定要重启tomcat,还有一定要保证能进入tomcat的/manager,部署时一定要打开tomcat-->

        <!-- 注意tomcat7此处的url,前面加ip地址,后面一定要带上/manager/text,这是tomcat的管理目录 -->
        <url>http://localhost:8080/manager/text</url>
        <server>tomcat7</server> <!-- 此处的名字必须和setting.xml中配置的ID一致-->
        <path>/Demo</path> <!-- 此处的名字是项目发布的工程名-->
    </configuration>

</plugin>

***************************************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.gdhrui.exp</groupId>
<artifactId>extweb</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>extweb</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>3.3.6</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>1.9.1</version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<verbose>true</verbose>
<source>1.7</source>
<target>1.7</target>
<port>8083</port>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/expweb</path>
<contextReloadable>true</contextReloadable>
<url>http://localhost:8080/manager/text</url>
<server>tomcat7</server>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>

</project>

*******************************************************

4.webapp目录需要放置在src/main里面



5.最后,只需要mvn tomcat7:deploy就可以了(必须事先启动tomcat服务器)
初次部署用的是tomcat7:deploy命令,重新部署可以用tomcat7:redeploy命令(推荐统一用这个),Tomcat Maven插件支持的命令包括:run、shutdown、run-war-only、exec-war、standalone-war-only、deploy、standalone-war、undeploy、run-war、redeploy等。

6.到Tomcat目录webapp下可以看到war包和工程名字,说明以部署上。

************************注意**********************

如何通过CND指令创建一个新的Maven 项目,已经如何部署到tomcat 的webapps目录下 通过指令生成的项目会默认打包成jar包,但是jar是不能被打包到tomcat下面的,所以打包部署时,是需要把jar改为war的。

如何通过CND指令创建一个新的Maven 项目,已经如何部署到tomcat 的webapps目录下

***************打包成功后,就可以开开心心的通过tomcat来查看项目了**************

*********大概就这些了,后面需要补充或者修改时,会改过来的