java管理:01_maven命令

整个开发项目的管理模型

软件名 作用 详情
maven 构建工程 创建、编译、单元测试、打包、部署工程,并生成报告
myeclipse 编辑工程 编辑maven构建的工程,再交给maven编译打包部署
tomcat 发布工程 发布运行myeclipse开发、maven编译打包后的web应用
linux 运行环境 操作系统,安装运行tomcat等软件

一、安装maven

1.下载解压

apache-maven-3.5.0

2. 配置环境变量

MAVEN_HOME=安装路径
path=%MAVEN_HONE%\bin

二、Maven构建工程

1. 创建工程

  1. 自己确定一个生成代码的文件夹(建议myeclipse的workspace)
  2. 运行CMD命令,进入文件夹
  3. 确定工程的名字和模板
    • 公司或组织的名字groupID:需要修改
    • 产品的名字artifactId:需要修改
    • 确定生成maven工程的模板,web工程模板:maven-archetype-webapp
  4. 生成maven创建工程的命令
    创建web工程(含maven)(推荐)
mvn archetype:generate -DgroupId=com.guoyasoft -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
  1. archetype:generate :按照模板生成maven工程
  2. -DgroupId:公司或组织名称(域名反写)
  3. -DartifactId:工程或产品名称
  4. -DarchetypeArtifactId:生成maven工程的模板
    • maven-archetype-quickstart:生成纯maven的模板
    • maven-archetype-webapp:生成web工程的模板(包含maven)

maven工程和普通工程的区别

普通java工程 maven工程
所有文件都在src下 源文件分成多类进行管理
编译代码放在bin文件夹下 构建过程的所有文件都放target下
jar包要自建lib文件夹并build path 自带pom.xml配置文件管理jar包

2. 清除构建数据

删除整个target文件夹

## 1. cmd到工程根目录(pom.xml文件所在目录)
## 2. 执行maven命令
mvn clean

clean是独立命令,可以和maven构建生命周期的命令组合使用,比如:

mvn clean compile
mvn clean test
mvn clean package

3. 编译

## 1. cmd到工程根目录(pom.xml文件所在目录)
## 2. 执行maven命令
mvn compile
或
mvn clean compile (推荐)

maven compile和javac的区别

javac mvn compile
javac命令 底层也是javac命令,但还封装了其它功能
单个编译 编译整个工程
.java和.class在一起 .class文件全部集中到target文件加,与.java隔离
手动查找下载jar包 自动根据pom.xml的配置查找下载jar包
手动给classpath添加jar包路径 自动添加jar包路径

4. 单元测试

会自动先执行mvn compile,再执行mvn test

## 1. cmd到工程根目录(pom.xml文件所在目录)
## 2. 执行maven命令
mvn test

5. package打包(jar、war、ear)

修改工程根目录的pom.xml文件

web工程名
└─src
    └─main
        ├─resources
        └─webapp
            └─WEB-INF
└─pom.xml

打成jar包还是war包,在pom.xml中进行设置:

<project >
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.guoyasoft</groupId>
  <artifactId>my-app</artifactId>
  <packaging>jar</packaging>
  <version>2.0</version>
</project>

打jar包:

<packaging>jar</packaging>

打war包:

<packaging>war</packaging>

打包命令:

## 1. cmd到工程目录(即pom.xml所在目录)
## 2. 执行maven打包命令
mvn package

查看结果:

## 1. cmd 进入工程的target目录
tree /f

## 2. 查看target的内容
C:.
│  my-app3.war
│
├─classes
├─maven-archiver
│      pom.propertie
│
└─my-app3
    │  index.jsp
    │
    ├─META-INF
    └─WEB-INF
        │  web.xml
        │
        └─classes

6. install安装jar包到本地仓库

将jar包安装到本地仓库,默认按照pom.xml的groupId、artifactId和version的值进行发布。会将jar包和pom文件都传到仓库

## 1. cmd到工程根目录(pom.xml文件所在目录)
## 2. 执行maven命令
mvn install

查看pom.xml文件,确定groupId、artifactId、version

<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.guoyasoft</groupId>
  <artifactId>my-app3</artifactId>
  <packaging>war</packaging>
  <version>1.0</version>
  <name>my-app3 Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>my-app3</finalName>
  </build>
</project>

到maven的本地仓库查找刚刚安装的jar包


或者(定制细节):groupId组织机构域名、artifactId产品名、version版本

mvn install:install-file 
-DgroupId=com.guoyasoft 
-DartifactId=my-app 
-Dversion=1.0.0 
-Dpackaging=jar 
-Dfile=C:\test\07_maven\my-app\target\my-app-1.0-SNAPSHOT.jar

7. deploy发布包jar包

jar包发布到远程仓库,war包发布到web服务器

1). 配置服务器登录信息

在%MAVEN_HOME%\conf\settings.xml中,可以配多个,传的时候选一下

        <servers>
            <server>
                <id>thirdparty</id>
                <username>admin</username>
                <password>admin123</password>
            </server>
        <server>
            <id>central</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
      </servers>

2)执行命令

mvn deploy:deploy-file 
-DgroupId=com.xy.oracle 
-DartifactId=ojdbc14 
-Dversion=10.2.0.4.0 
-Dpackaging=jar 
-Dfile=E:\ojdbc14.jar 
-Durl=http://localhost:9090/nexus-2.2-01/content/repositories/thirdparty/ 
-DrepositoryId=thirdparty

Durl:上传服务器的地址
DrepositoryId:登录服务器的配置,配在%MAVEN_HOME%\conf\settings.xml的servers中

8. deploy发布包war包

jar包发布到远程仓库,war包发布到web服务器

1)tomcat配置脚本登录账户

配置文件:%TOMCAT_HOME%\conf\tomcat-users.xml

<tomcat-users>
      <role rolename="manager-script" />
      <user username="deployer" password="654321" roles="manager-script"/>
</tomcat-users>

2)配置服务器登录信息

在%MAVEN_HOME%\conf\settings.xml中,可以配多个,传的时候选一下

        <servers>
            <server>
                <id>tomcat</id>
                <username>deployer</username>
                <password>654321</password>
            </server>
      </servers>

3)pom.xml配置tomcat插件

            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <url>http://localhost:8081/manager/text</url>
                    <server>tomcat</server>
                    <update>true</update>
                    <path>/HtmlWeb1</path>
                </configuration>
            </plugin>

直接写用户名和密码(不推荐):

            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <url>http://localhost:8081/manager/text</url>
                    <username>deployer</username>
                    <password>654321</password> 
                </configuration>
            </plugin>

4)部署war包

mvn clean
mvn tomcat7:redeploy

8. sit生成构建报告

在target文件夹下生成一个小网站,里面可以查看项目的各类信息,主界面index.html

mvn sit

三、本地仓库

%TOMCAT_HOME%\conf\settings.xml

  <localRepository>
        C:\software\apache-maven-3.5.0\repository
</localRepository>

四、远程仓库

1. 官方仓库(默认)

https://repo1.maven.org/maven2/

2. 国内镜像库

http://maven.aliyun.com/nexus/content/groups/public

https://repository.jboss.org/maven2/

https://repository.sonatype.org/content/groups/public/

http://repo.springsource.org/libs-milestone-local

六、pom.xml配置依赖

1. 配置远程仓库

<!-- 配置远程仓库 -->
    <repositories>
        <repository>
            <id>maven</id>
            <url>https://repo1.maven.org/maven2/</url>
        </repository>
        <repository>
            <id>aliyun</id>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </repository>
        <repository>
            <id>jboss</id>
            <url>http://repository.jboss.com/maven2/</url>
        </repository>
        <repository>
            <id>oschina</id>
            <url>http://maven.oschina.net/content/groups/public/</url>
        </repository>
        <repository>
            <id>codelds</id>
            <url>https://code.lds.org/nexus/content/groups/main-repo</url>
        </repository>
        <repository>
            <id>hearglobal</id>
            <url>http://maven.hearglobal.com/content/groups/public/</url>
        </repository>
    </repositories>

2. dependency配置依赖包

  <dependencies>
                <!-----------selenium界面自动化------------->
            <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <version>2.50.0</version>
            <artifactId>selenium-java</artifactId>
        </dependency>

                <!-----------testNG测试框架------------->
            <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.8</version>
        </dependency>

                <!-----------servlet接口(http)------------->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
            <scope>provided</scope>
        </dependency>

                <!-----------自动生成代码的框架------------->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.20</version>
        </dependency>
                
                <!-----------生成和读取CSV文件------------->
        <dependency>
            <groupId>net.sourceforge.javacsv</groupId>
            <artifactId>javacsv</artifactId>
            <version>2.0</version>
        </dependency>

                <!-----------JDBC(oracle和mysql)驱动------------->
        <dependency>
            <groupId>ojdbc</groupId>
            <artifactId>ojdbc</artifactId>
            <version>14</version>
        </dependency>


                <!-----------mybatis持久层框架------------->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>${mybatis-spring.version}</version>
        </dependency>
              
               <!-----------spring框架------------->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>

  </dependencies>

3. 常用插件

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容