maven基础学习

来源:互联网 发布:笔记本键盘测试软件 编辑:程序博客网 时间:2024/05/18 00:26

Eclipse创建maven项目后,没有src/main/java目录


今天用一个新的Eclipse来创建maven项目,发现创建之后没有生成src/main/java目录,同时我手动来生成,也不能成功,提示该目录已经存在了,最后找到原因,是因为我选择的JRE不对,应该选择本机安装JDK带的JRE,而不是IDE的,下面就修改下

 

对应Project-->Properties-->Java Build Path-->JRE System Library-->edit

计算机生成了可选文字:陋少已叫ResourceBui!ders豁默黔丫,JavaCodeStyleJavaCompilerJavaEditorJavadocLocationJavascriptJSpFragmentMavenprojectFacetSprojectReferenceSRefactoringHi,toryRun/DebugSett;ng、SeFVerServicepoliciesTargetedRuntimesTaskRepositoryTaskTagsValidationWebContentSettingsWebpageEditorWebProjectSettingsWikiTextXDoc!鱿ProPertieSforispringJavaBui!dP献hl巴source口projects么Lib『a『ies勺orderandExportJARsandcla,5folder,onthebuildpa文卜:Add」ARs…AddEXternalJARs…AddVariab!e…AddLib阻ry…AddClassFo!der…AddExterna!C!a'5Fo!der…it.一Ed一一Remove⑦OKCance!面函月口r二1r尸二,,...面面函自...面函云..翻

 

修改为安装的JRE

计算机生成了可选文字:国〔ditLibrawJRESystemLibrarySelectJREfort卜eprojectbuildpath.口凰,SystemIibrary0Executionenvironment:OAlternateJRE:Environments…InstalledJRE‘…,WorkspacedefaultJRE〔dk--1.6)

 

这样目录就有了

 

 

定义Spring maven下载

2014928

10:06

 

<repositories>

        <repository>

            <id>spring-releases</id>

            <url>http://repo.spring.io/libs-release</url>

        </repository>

    </repositories>

    <pluginRepositories>

        <pluginRepository>

            <id>spring-releases</id>

            <url>http://repo.spring.io/libs-release</url>

        </pluginRepository>

    </pluginRepositories>

 

 

Maven远程部署应用

2015216

15:37

 

1.       需要在pom.xml文件增加一个插件

 <plugin>

                    <groupId>org.codehaus.mojo</groupId>

                    <artifactId>tomcat-maven-plugin</artifactId>

                    <version>1.1</version>

 <configuration>

                                          <url>http://172.18.83.125:8080/manager</url>

               <server>deploymentRepo</server>

                                         <path>/iDeploy</path>

                                </configuration>

            </plugin>

配置说明:

1.url: 远程tomcat的管理地址,注意后面的managertomcat的管理接口地址

2.server:这个为一个配置信息,需要与本地仓库setting.xml文件里面的配置名称一样

3.path: 部署的应用名称

2.       修改本地mavensetting.xml文件

<server>

                <id>deploymentRepo</id>

               <username>admin</username>

              <password>adminpass</password>

        </server>

       配置说明:

      1.id: ID为上一步配置的server名称,两者需要一样

      2.username:tomcat管理界面的用户名

      3.password:tomcat管理界面的密码

 

3.       远程部署

cmd下执行 mvn tomcat:deploy 命令来部署我们的应用到指定的tomcat中去,该过程可以不用关闭tomcat

4.       常用部署命令

mvn tomcat:stop   停止当前应用

mvn tomcat:deploy  部署当前应用

mvn tomcat:undeploy 卸载当前应用

mvn tomcat start 启动当前应用

 

这里在执行的时候,只是针对当前的应用,而非整个tomcat

 

 

Maven基础信息

2015311

13:38

A.      Maven安装

1.下载maven

mavenApache组织下的一个开源项目,是项目管理工具,主要是项目构建,依赖管理,项目信息管理这几个方面,下载的地址:http://maven.apache.org/

下载到本地之后,解压到对应的文件夹,解压的目录结构如下:

计算机生成了可选文字:修 改 曰 期 名 称 1111 」 」 」 文 # 夷 201 / 5 厂 61 & 5 文 # 夷 boot 201 / 5 厂 61 & 5 文 # 关 conf 201 / 5 厂 61 & 5 文 # 夷 201 / 5 厂 61 & 5 文 # LICENSE 2013 / g 厂 72 引 2 1 5 KB 文 # NOTICE 2013 / g 厂 72 引 2 文 本 文 桂 README.txt 2013 / g 厂 72 引 Ig 3 KB

2.配置环境变量

因为需要在电脑任意目录都能执行maven的命令,也就是bin目录下面的mvn.bat,所以需要将bin目录配置到电脑的环境变量中,比如我本机对应目录:

D:\java_tool\apache-maven-3.1.1-bin\apache-maven-3.1.1\bin

 

配置完毕后,也可以跟java配置一样,检查是否配置成功,在任意目录打开cmd窗口,输入命令:

mvn -version

如果输出了mavne相关的信息,那么证明已经配置成功,否则配置失败,可以输入path命令来看下刚刚配置的信息是否正确

 

3.本地maven

maven会在本机创建一个目录作为本地库文件存放地址,默认在

C:\Users\${UserName}\.m2   这个目录

4.maven结构

maven坐标是通过groupId,artifactoryId,version来定义一个jar文件,比如常见的log4j文件,定义的groupIdlog4j, artifactoryIdlog4j,version1.2.17,所以在本地仓库里面对应的目录就应该是

log4j/log4j/1.2.17这个目录下面,如:

计算机生成了可选文字:windowOS 22 KB Jack .m2 repository 2014/6/16 22:13 2014/6/16 22:13 2014/6/16 22:11 2014/6/16 22:11 2015/2/11 13:59 2015/2/11 13:59 log4j log4j JAR POM LASTUPDATED JAR-NOT-AVAIL... 1.2.17 47g KB log4j -1.2.17.jar log4j-12.17 jar.shal log4j-12.17 .pom log4j-12.17 .pom.sha I log4j-12.17 rcesjar.lastUpdated log4j -12.17 -sou rces.Ja r -not-ava ila ble

 

 

B.      Maven集成到Eclipse

一般会将maven插件集成到eclipse中,方便导入maven工程项目以及执行一些基本的命令操作

集成有两种方式,一个是直接下载插件到本地,然后通过链接文件来加入,这种方式不推荐,因为eclipse是非安装软件,直接拷贝就可以使用,所以如果通过这种方式拷贝给别的电脑使用的时候,会比较麻烦,这里推荐使用在线安装的方式来做,由于maven插件的官网已经在8月份就关闭了,可以查看:https://support.sonatype.com/entries/24316542.html有说明

计算机生成了可选文字:Where did http://m2eclipse.sonatype.org/sites/m2e go? Peter Lynch posted this on June 20, 2013, 09:22 in snare As of June 2013, that site has been shut down because M2Eclipse was moved to the Eclipse Foundation years ago You can access the archived M2Eclipse sites (including 0.12) here: https://repositorysonatype.org/content/sitesftorge-sites/nüe/ For more information on how to access current m2e releases, see httpWeclipse.org/m2e/download/.

所以现在通过Help-->Install new software去安装会比较麻烦,好在Eclipse为我们提供的自己的应用商店

通过点击Help-->Eclipse Marketplace,打开在线商店,然后输入maven来进行搜索

计算机生成了可选文字:Eclipse Marketplace Select solutions to install. Press Finish to proceed with installation. Press the information button to see a detailed overview and a link to more information. Search Recent Popular Installed January 02/24 lip Marketpla Install Find: maven m2e All Markets by CoderPlus, EPL v All Categories m2e maven m2e-connector yuicompressor-maven-plugin Installs: 1.63K (306 last month) Maven Integration for Eclipse (Luna) 1.5.0 m2e provides comprehensive Maven integration for Eclipse. You can use m2e to manage both simple and multi-module Maven projects, execute Maven builds via more info by Eclipse.org, EPL maven iava build development Installs: 29.6K (2,918 last month) Maven Development Tools (requires m2e 1.6+) 0.3.0 Maven Development Tools is a collection of m2e extensions that Back Install Now Ca ncel Marketplaces

选择这个插件来进行安装,然后一路安装下去,最后会提示重启eclipse,重启之后通过Windows-->Perferences,会看到有maven的选项,说明安装成功。

计算机生成了可选文字:type filter text General Data Management Help Install/Update Java Java EE Java Persistence JavaScript Maven Discove ry Errors/Warnings Installations Java EE Integratio Lifecycle Mapping Templates user Interface user Settings Mylyn Plug-in Development v Preferences Maven Offl i ne Do not automatically update dependencies from remote repositories Debug Output Download Artifact Sources Download Artifact Java Doc Download repository index updates on startup Update Maven projects on startup Hide folders of physically nested modules (experimental) Global Checksum Policy: Default Restore Defaults Apply

这里需要配置下,使用我们上一步下载到本地的maven,所以需要指向目录,

Maven-->Installations-->Add   在弹出的界面中,找到我们对应maven的目录就可以了,然后点击finish按钮完成配置,如果之前的maven本地仓库目录位置有变动,那么这里还需要点击User Settings选项来进行配置

 

好了,maven已经配置好了之后,那么来创建一个maven项目,通过New-->Project-->Maven-->Maven Projec来进入maven项目创建向导

计算机生成了可选文字:Select a wizard Create a Maven Project Wiza rd s: Java Java EE JavaScript JAXB e' -IPA Maven Check out Maven Projects from SCM Maven Project Next Back Ca ncel

 

单击Next,这里只是创建一个简单的web项目,如果想创建一个jar文件,那么直接将Create a simple project勾选上就可以了

计算机生成了可选文字:New Maven project Select project name and location Create a simple project (skip archetype selection) use default Workspace location Location: Add project(s) to working set Working set: Adva nced w Mav v More... Ca ncel

 

单击Next下一步,选择需要的插件,这里是创建web项目,所以就选择下面这个插件

计算机生成了可选文字:New Maven project Select an Archetype Catalog: All Catalogs Filter: Group Id net. iftwe b net. iftwe b org a pache.cocoon org pa che. maven. a rchetypes A simple Java web application Show the last version of Archetype only Adva nced e Mav rue Version RELEASE RELEASE RELEASE RELEASE Config u rew Add Archetypew Ca ncel Artifact Id lift-a rchetype-basic lift-archetype-blank cocoon -22-a rchetype-weba pp maven-a rchetype -we ba pp Include snapshot archetypes

 

然后点击Next,最后就是写入我们这个项目的maven坐标,也就是groupIdartifactoryId

计算机生成了可选文字:New Maven project Enter an artifact id. New Maven Project Add w Re move Ca ncel Back Next Group Id: Artifact Id: Version: Package: com.jacksoft 0.0.1 -SNAPSHOT com.jacksoft Properties available from archetype: Na me Adva nced Value

 

groupId一般写入公司域名,类似包名,如: cn.com.scca

artifactoryId 一般写当前项目的名称,如留言板项目对应   ibook

然后点击finish完成,开始创建项目

项目创建完毕后的结构如下:

计算机生成了可选文字:iBook Deployment Descriptor: Archetype Created Web AP' Java R e sou rces src/main/java src/main/resources src/test/java Libraries JavaScript Resources Deployed Resources we ba pp , WEB-INF web.xml indexjsp we b - resou rces ta rget pom.xml

这里如果src/main/java目录没有出来,那么可以手动去创建这个目录,如果创建时提示目录已经存在,那么右键项目Build path-->Configure build path,在弹出的窗口中,选择JRE System library,然后点击edit,设置我们自己设置好的jre

计算机生成了可选文字:JRE System Library Select JRE for the project build path. System library o Execution environment: o Alternate JRE: @Workspace default JRE I .6) it Libr E nvironmentsw Installed JREsw

 

 

这样就可以看到对应的目录结构了,这里简单说下目录结构

src/main/java: 一般的java代码都放在这里

src/main/resources: 项目的配置文件,比如一些常用的properties文件

src/test/java: 测试代码,这个包下面的代码,在我们执行mvn package打包的时候,会自动运行测试代码,也可以添加参数来忽略测试 -Dmaven.test.skip=true  这样测试代码就不会编译和执行

webapp:也就是对应myeclipse里面的webroot目录下面的内容

 

添加jar文件

打开pom.xml文件,这个文件就是整个工程的重点,里面具体的配置大家可以在网上找资料看下,这里简单介绍如何添加一个jar文件,找到dependencies节点,然后输入下面的内容

 <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>4.11</version>

      <scope>test</scope>

    </dependency>

 

这样就可以将junit测试jar和相关的jar引入到项目中,如果jar文件下载失败,那么这个pom.xml文件会打叉,有个提示信息,同时在下面这个位置也可以看到对应的jar文件是否已经引入

计算机生成了可选文字:Java R e sou rces s rc/main/ja va s rc/ ma i n/ resou rces s rc/te st/java Libraries JRE System Library Maven Dependencies junit-4.11.jar - C:XlJsersXJackX.m Arepositor hamcrest-core-l .3.jar - C:xuser ackX.m2X Java rpt esources

 

这个有个属性 scope,表示jar文件的应用范围,这里写的是test,说明只是在测试阶段使用,当我们打包的时候,这个jar文件不会被打入war包中,这样可以减轻war包的大小,还有其他的一些属性,比如编译,运行,本地等

 

运行基本的命令:

右键项目-->Run as 可以看到有几个基本的maven命令

常用的就是mvn cleanmvn package两个,一个是清除项目打包信息,一个是打包

执行之后都需要看到SUCCESS 才说明执行成功,如:

计算机生成了可选文字:(INFO) (INFO) (INFO) (INFO) (INFO) (INFO) (INFO) (INFO) (INFO) (INFO) (INFO) (INFO) Scanning for pro) ects. Building iBook Maven Webapp O. O. I—SNAPSHOT 2. 5: clean (default—clean) @ iBook Deleting D: 'X WORK SPÄCEXMyWorkXx64Xmy studyXibookXtarget BUILD SUCCESS Total time: O. 327 s Finished at: Thu Mar 12 09: 44: 32 CST 2015 Final Memory: 4M/ IIEM (WARNING) The requested profile "artifactory" could not be activated because it does not exist.

 

 

 

 

C.      Maven常用命令

1. maven项目转eclipse项目

通常我们提交到svn的代码都是这样的结构:

计算机生成了可选文字:, mybatis-plugins 名 称 1 豳 pom.xml 修 改 曰 期 2015 / 3 厂 2 g 7 201 厂 1 / 71i5 文 # 关 XMLn*

这个通过maven项目时可以导入eclipse的,但是如果没有安装maven的话,那么导入就会存在一些问题,这里maven为我们提供的一个命令: mvn eclipse:eclipse 这样就可以转换为eclipse工程,然后就可以通过普通项目来导入

计算机生成了可选文字:C:XWindowsXsystem32Xcmd.exe : Wsers 'MJackWesktopXnybatis—pIugins mun eclipse :eclipse e mybatis—plugins e mybatis—plugins e mybatis—plugins 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) Scanning for projects. Building mybatis—plugins Using Eclipse Workspace: Adding default classpath ø.ø.1-SNRPSHOT (default—cli) (default—cli) (default—cli) null container: org . eclipse .jdt . launching .JRE_CONTRIN "mybatis—plugins" to C: Wsers 'MJackXDesktopXnyba Not writing settings defaults suffice Wrote Eclipse project for CST 2ø15 is—plugins . 'INFO) LINFO 'INFO) 'INFO) BUILD SUCCESS Total time: Finished at: Thu Mar 12

这个时候就生成了eclipse的一些配置信息

计算机生成了可选文字:mybatİs-plugİns ta rget .classpath . project pom.xml 2015/3/12 947 2015/3/12 950 2015/3/12 950 2015/3/12 950 2014/11/7 15:54 CLASSÇ PROJE! XML

 

如果要还原回去,直接输入命令: mvn eclipse:clean

计算机生成了可选文字:: Wsers XJack Wesktop •vnybat is—plugins hun eclipse : clean — : 2.9:cIean (default—cli) e mybatis—plugins 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) Scanning for projects. Building mybatis—plugins ø.ø.1-SNRPSHOT Deleting file: Deleting file: Deleting file: BUILD SUCCESS . project . classpath . wtpmodules Total time: ø.921s Finished at: Thu Mar 12 Final Memory: 12M/149M CST 2ø15

 

计算机生成了可选文字:mybatis-plugins ta rget pom.xml 2015/3/12 9:47 2015/3/12 9:50 2014/11/7 15:54

又恢复到初始状态,很方便,当然用其他的IDE也是可以的,比如idea,那么就是mvn idea:idea

 

2.运行测试

之前说了src/test/java是我们的测试代码,那么也可以通过maven来为我们管理,直接输入:

mvn test 那么会自动去执行这些test,并且会有个结果输出。主要插件是Surefire Plugin这个,

 

有时候打包不需要运行测试,那么可以通过添加参数来进行,如

mvn package  -DskipTests      跳过测试,但是要编译

或者

mvn  package -Dmaven.test.skip=true   这个是跳过编译和测试

 

3.编译源代码

这个命令还是很方便,有时候没有在IDE里面修改文件,那么需要编译就要用到java的命令,而且文件比较多的时候,也不方便,通过执行mvn compile来直接对项目进行编译

计算机生成了可选文字:: Wsers XJack Wesktop •vnybat is—plugins hun compile — : 2.6 : resources (default—resources 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) Scanning for projects. Building mybatis—plugins ø.ø.l— SNAPSHOT LWRRNINGI Using platform encoding (GBK actually) to copy filtered . build is platform dependent! 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) Copying ø resource : 2 .5.1 :compile (default—compile) Nothing to compile all classes BUILD SUCCESS Total time: ø.695s Finished at: Thu Mar 12 Final Memory: ?M/118M are CST up to date 2ø15

4.清除命令

   有时候需要执行清除命令,也就是将target目录下的文件都删除,那么执行运行mvn clean

即可将这个下面的文件删除

5.打包

先来说下普通的打包,也就是我们开发时期的打包,直接运行mvn package,当然也可以先运行mvn clean,也可以两个命令联合起来执行,如 mvn clean package   这样就会先清除,然后再执行打包,maven就是这么神奇。

计算机生成了可选文字:: Wsers XJack Wesktop •vnybat is—plugins hun clean package 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) Scanning for projects. Building mybatis—plugins ø.ø.1-SNRPSHOT — : 2.5:cIean (default—clean) e mybatis—pl Deleting C: Wsers Xtarget — : 2.6 : resources (default—resources) LWRRNINGI Using platform encoding (GBK actually) to copy filtered re . build is platform dependent! LINFOI Copying ø resource

 

计算机生成了可选文字:'INFO) : 2.4: jar (default—jar) e mybatis—plugins LINFOI Building jar: C: Wsers 'MJackWesktopXnybatis—pIugins •vnybatis—plu! -ø.ø.1-SNRPSHOT . jar CST 2ø15 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) BUILD SUCCESS Total time: 1.661 s Finished at: Thu Mar 12 Final Memory: 13M/149M

 

从日志可以看到已经在target目录生成了最终的产品

计算机生成了可选文字:mybatis-plugins target classes maven-archive r test-classes 1 mybatis-plugins-O.O.I -SNAPSHOT.jar 2015/3/12 10:00 2015/3/12 10:00 2015/3/12 10:00 2015/3/12 10:00 JAR

 

这里也可以将源码也打成jar文件,上传到maven库之后,方便查看,这个配置大家就去网上看看吧,很多的。

 

这里有个问题,现在生成的jar文件是SNAPSHOT版本,也就是说不是正式版,可以通过修改pom.xml文件里面的version来解决,但是这个是不规范流程

计算机生成了可选文字:jacksoft«: / groupld:- art i fact I tis —plugins«: / art i fact I . O . I—SNAPSHOT-Z/versior» -Zpackag / packag ing

 

6.版本发布

 

通常我们在正式版本发布的时候,会将当前的代码也推送到svntags目录一份,这样在客户那边版本出了问题之后,那么也可以提取对应的版本出来修正,然后提交,就不容易出现混乱。

 

版本控制

也就是说让maven来替我们操作svn上面的版本控制,那么也就是需要用到svn的命令,在命令行输入svn --version看该命令是否能执行,如果不能执行,说明svn版本过低或者没有安装subversion工具。

好吧,还是以刚才的ibook项目来说,首先打开我们的把这个项目提交到svntrunk目录。

提交这里也简单说下,有些文件不需要提交到svn,实际上我们要提交的也只有下面的这些文件:

计算机生成了可选文字:iBook .settl s src/main s rc/main/ja va s rc/ ma i n/ resou rces src/ main/webapp src/ ma i n/weba B -INF s rc/test s rc/te st/java ta rget target/m2e-vftp target/m2e-Mp/web-resou rces .classpath ro ect pom.xml

其他的都不需要提交上去,对应的jar文件也不需要提交上去,都是将项目拿下来之后,通过pom.xml文件去下载对应的jar文件的。在svn上面看到的目录机构如下:

计算机生成了可选文字:https://127.O.O.I/svn/root/Projectflbook/trunk Extension . xml Re vision 79 79 Au thor Zhoujiang Zhoujiang https://127. O. I/svn/root Project Easwv egoPIugins tags pom. xml

 

 

好了,打开pom.xml文件,添加scm版本控制信息,这个配置在版本发布的时候,会修改我们的pom.xml里面的版本号:

  <scm>

          <developerConnection>scm:svn:https://127.0.0.1/svn/root/Project/ibook/trunk</developerConnection>

  </scm>

有两种连接方式,一般用developerConnection这个就可以了

同时需要配置relase插件,在pom.xml里面build节点里面配置如下:

<plugins>

            <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-release-plugin</artifactId>

        <version>2.5.1</version>

        <configuration>

                       <tagBase>https://127.0.0.1/svn/root/Project/ibook/tags</tagBase>

        </configuration>

      </plugin>

    </plugins>

 

这里主要是说明我们的tags目录在哪里,然后发布版本的时候,也会将代码提交一份到这里面。

一般在发布版本的时候,最好是单独从svn上面checkout一份代码到本地打包,最好不要用正在开发的代码进行打包,不然有可能会因为本地开发文件没有提交,而造成打包失败,如下:

计算机生成了可选文字:'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) re —run Working directory: BUILD FAILURE D: NWORK_SPRCEvqyWorkXx60.ny_ study Xibook 12 12:34:19 CST 2ø15 Total time: 1.168s Finished at: Thu Mar Final Memory: 8M/ 118M LWRRNINGI The requested prof ile "artifactory" could not be activated because it oes not exist. 'ERROR) Failed to execute oaI or . a ache . maven. Iu ins Iu in : 2.5 .1 : prepare (default—cli) on project have local modif ications ibook: the Cannot prepare errors the release because yo trace Maven with the swit 'ERROR) 'ERROR) 'ERROR) 'ERROR) om.xml:modifiedl 'Help 1 1 see the full stack

所以现在先checkout一份代码到本地,然后开始执行版本发布

现在开始尝试打包,执行命令 mvn release:prepare -DdryRun=true

计算机生成了可选文字:E_ÉJ iBook (-8 pom.xml • WindowsXsystem32Xcmd.exe : Wsers 'MJackXDesktopXibook)mun release : prepare —DdryRun —true

 

回车之后,这里会提示你当前的版本,然后要求你是否输入新的版本号,输入之后,直接回车就可以了

计算机生成了可选文字:mvn release:prepare -DdryRunztrue : Wsers 'MJackXDesktopXibook)mun release : prepare —DdryRun —true N*Xpom . xmI 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) Scanning for projects. Building ibook Maven Webapp ø.ø.I—SNRPSHOT :2.5.1 : prepare (default—cli) e ibook Uerif Ying that there are no local modif ications. ignoring changes on: —Xrelease . properties. Xpom.xml.next. . releaseBackup. Xpom.xml.backup. Xpom.xml.branch. Xpom.xml. tag LINFOI Executing: cmd.exe RX 'C "sun ——non—interactiue status" LINFOI Working directory: C: Wsers 'MJackWesktopXibook hat is the release version for "ibook Maven Webapp"? (cn . • ibook) com.scca. ø.ø.l:

 

 

接着会让你输入tag的版本号,一般我们根据提示信息来输入就可以了,除非是有大的版本跳动,

这里输入ibook-0.0.1  然后回车

计算机生成了可选文字:mvn release:prepare -DdryRunztrue : Wsers 'MJackXDesktopXibook)mun release : prepare —DdryRun —true N*Xpom . xmI 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) Scanning for projects. Building ibook Maven Webapp ø.ø.I—SNRPSHOT :2.5.1 : prepare (default—cli) e ibook Uerif Ying that there are no local modif ications... ignoring changes on: —Xrelease . properties. Xpom.xml.next. . releaseBackup. Xpom.xml.backup. Xpom.xml.branch. Xpom.xml. tag LINFOI Executing: cmd.exe RX 'C "sun ——non—interactiue status" LINFOI Working directory: C: Wsers 'MJackWesktopXibook LINFOI Checking dependencies and hat is the release version for hat is SC" release tag or label ook—ø.ø I plugins for snapshots "ibook Maven Webapp"? (cn.com.scca:ibook) ø.ø.l: for "ibook Maven Webapp"? (cn.com.scca:ibook) i

 

接着会让你输入这次版本发布之后下一个版本是多少,一般也是根据提示信息输入就可以了

计算机生成了可选文字:mvn release:prepare -DdryRunztrue : Wsers 'MJackXDesktopXibook)mun release : prepare —DdryRun —true N*Xpom . xmI 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) Scanning for projects. Building ibook Maven Webapp ø.ø.I—SNRPSHOT :2.5.1 : prepare (default—cli) e ibook Uerif Ying that there are no local modif ications... ignoring changes on: —Xrelease . properties. Xpom.xml.next. . releaseBackup. Xpom.xml.backup. Xpom.xml.branch. Xpom.xml. tag LINFOI Executing: cmd.exe RX 'C "sun ——non—interactiue status" LINFOI Working directory: C: Wsers 'MJackWesktopXibook LINFOI Checking dependencies and plugins for snapshots . hat is the release version for "ibook Maven Webapp"? (cn.com.scca:ibook) ø.ø.l: . ø.ø.l hat is SC" release tag or label for "ibook Maven Webapp"? (cn.com.scca:ibook) i hat is the new development version for "ibook Maven Webapp • (cn.com.scca:ibook ) ø.ø.2-SNRPSHOT: .

输入0.0.2-SNAPSHOT  然后回车

 

回车之后,等待发布,当出现SUCCESS的时候,说明版本发布成功了。

计算机生成了可选文字:'INFO) 'INFO) se it 'INFO) C:XWindowsXsystem32Xcmd.exe 'INFO) LWRRNINGI The requested prof ile does not exist. Full run would be commit I files "artifactory" could not be activated beca with message: pare release ibook—ø.ø.l' LINFOI Full run would be tagging working copy C: Wsers 'MJackWesktopXibook with I bel: ' ibook-ø.ø.l' LINFOI Transforming ' ibook Maven Webapp' . LINFOI Not removing release POMs LINFOI Executing completion goals since this is simulation mode it is running gainst the original project. not the rewritten ones LINFOI Full run would be commit I files with message: pare for next development iteration' 'INFO) LINFO 'INFO) 'INFO) 'INFO) 'INFO) Release preparation simulation complete . BUILD SUCCESS Total time: Finished at: Thu Mar 12 Final Memory: 9M/121M 12:43:13 CST 2ø15 LWRRNINGI The requested prof ile oes not exist. : Wsers 'MJackXDesktopXibook) "artifactory" could not be activated because

 

这个时候,看到我们项目的目录多了一些文件

计算机生成了可选文字:E_ÉJ Administrator Administrator (l Administrator Downloads leilei (junnotebc zxj (j unnoteboo XML NEXT RELEASE TAG PROPER ACKU... E-SSÜ# iBook 2015/3/12 12:38 2015/3/12 12:43 2015/3/12 12:38 2015/3/12 12:43 2015/3/12 12:39 2015/3/12 12:43 2015/3/12 12:43 ta rget pom.xml pom.xml.next pom.xml .relea seBackup pom.xml.tag release.properties

这些是记录我们当前发布版本的文件,最好是留着,因为这个可以帮助我们回滚版本。

现在尝试发布版本已经没有问题,那么就开始正式发布版本

 

先运行mvn release:clean 清除版本文件

计算机生成了可选文字:: Wsers 'MJackXDesktopXibook)mun re lease : clean 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) Scanning for projects. Building ibook Maven Webapp ø.ø.I—SNRPSHOT ibook activated because — : 2.5. I:clean Cleaning up after release.. (default—cli) 2ø15 CST BUILD SUCCESS Total time: I.ø16s Finished at: Thu Mar 12 Final Memory: 9M/118M be LWRRNINGI The requested prof ile oes not exist. "artifactory" could not

 

计算机生成了可选文字:iBook ta rget pom.xml trator (j 2015/3/12 12:38 2015/3/12 12:43 2015/3/12 12:38 XML

 

文件都清除之后,开始正式发布,输入命令:mvn release:prepare,执行成功之后,我们再来看看本地文件夹的变化

计算机生成了可选文字:İbook ta rget pom.xml pom.xml .releaseBackup re lease.properties 2015/3/12 12:38 2015/3/12 13:06 2015/3/12 13:06 2015/3/12 13:06 2015/3/12 13:06 aŞ"İba... XML RELEASEBACKU... PROPERTIES

 

打开pom.xml文件,我们发现版本号已经变化了

计算机生成了可选文字:(groupl»cn . com.scca(/groupl» (artifa a (pa ckagi / pa ckagi (versionM) . O . 2—SNAPSHOTK/versiorD name 1 00 ven e app name

再看看SVN文件夹

计算机生成了可选文字:URL: https://127.O O I/svn/root/Projectflbook/tagsflbook-O O I Re vision 79 84 Au thor Zhoujiang Zhoujiang 1.50 KB https://127. O. I/svn/root Project Easwv egoPIugins iBook book-O O. I trun Extension Lsr xml . xml

 

已经将0.0.1版本的代码牵到tags目录,最后再看我们target里面打的包文件

计算机生成了可选文字:ibook terget classes i boa k -0.0. I maven-archiver ibook-O.O.I .war 2015/3/12 13:06 2015/3/12 13:06 2015/3/12 13:06 2015/3/12 13:06

到这来发布版本就差不多结束了

 

7.版本回滚

有时候难免会打完包之后,又有点小bug,但是又不想升级版本,那么久需要回滚当前的版本,所以之前打包的那些文件不要删除就是这个原因。

在命令行执行:  mvn release:rollback 

计算机生成了可选文字:C:XWindowsXsystem32Xcmd.exe oes not exist. : Wsers 'MJackWesktopXibook mun release : rollback •11:41 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) Scanning for project Building ibook Maven Webapp ø.ø.2-SNRPSHOT :2.5.1 : rollback (default—cli) e ibook Checking in modif ied POMs.. Executing: cmd.exe RX 'C "sun ——non—interactiue commit —file C: k XAppData XLoca I emp Xnauen —s cm—1154117198 . commit ——targets C: Wsers 'MJackXAppDat 'INFO) 'INFO) 'INF 'INFO) 'INFO) 'INFO) 'INFO) Working directory: C: Wsers 'MJackWesktopXibook Cleaning up after release.. CST BUILD SUCCESS Total time: 1.813s Finished at: Thu Mar 12 Final Memory: 9M/118M 13. 2ø15 LWRRNINGI The requested prof ile oes not exist. : Wsers 'MJackXDesktopXibook) "artifactory" could not be activated because

 

回滚之后,我们看到pom.xml里面的版本号又恢复到0.0.1-SNAPSHOT了,说明版本回滚成功,那么可以再次发布版本。

注意:回滚版本之后,需要手动去删除tags目录下面的代码

8.生成站点

有时候为了给别人展示数据,那么需要写一个网页,maven为我们提供了一个插件site,在命令行输入mvn site即可,执行完毕后,会在target目录生成一个文件夹 site,进入之后,打开index.html就可以浏览一些项目的信息

9.查看当前项目的依赖关系

有时候引入一些jar文件,会自动把另外的jar文件引入进来,但是有些时候就会出现版本冲突的问题,那么可以在命令行输入 mvn dependency:tree来查看依赖关系

计算机生成了可选文字:: Wsers 'MJackXDesktopXibook)mun dependency: tree 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) 'INFO) INFO) INFO) 'INFO) 'INFO) 'INFO) Scanning for projects. Building ibook Maven Webapp ø.ø.2— SNAPSHOT ibook 2—SNRPSHOT : test X— : jar: 1.3: test 1.3?6s Thu Mar 12 CST Total time: Finished at: 2ø15

这个就是现在项目的依赖关系

D.      Maven jar文件处理

有时候我们需要引入一个jar文件,但是不知道这个jar文件的groupidartifactoryid,那么可以到网站上查询,现在很多jar文件都会有这个信息,比如http://mvnrepository.com/  可以查询,也可以下载

 

如果是我们自己的jar文件,那么在执行install之后,就会安装到本地仓库,下次可以使用,对于一个团队来说,可以上传到内部的服务器,比如artifactory或者Nexus来做,现在125上面虚拟机 centeros上面已经安装好了artifactory,那么大家的下载地址可以指向那台机器,但是这台机器没有联网,所以只能在公司使用,在其他地方使用的时候,下载文件就会先去链接这台电脑,然后超时了再去网络下载,比较慢。

 

 

 

 

maven库地址:http://mvnrepository.com/

 

 

Artifactory安装使用

201466

14:53

 

1.       使用maven之后,就需要一个maven仓库,把从网络服务器仓库中的jar下载到本地,但是有时候也难免出现只有一个jar的情况,这时候就需要把jar安装到我们的仓库中,当然使用命令是可以的,比如:

mvn install:install-file -Dfile=D:\mvn\spring-context-support-3.1.0.RELEASE.jar -DgroupId=org.springframework -DartifactId=spring-context-support -Dversion=3.1.0.RELEASE -Dpackaging=jar

 

命令比较长,也不是很方便,那么就需要一种工具来帮我们管理jar,这里就使用Artifactory来作为管理工具

 

2.  下载地址

该工具可以直接在官网上进行下载,也可以在github网站上下载,地址:http://sourceforge.net/projects/artifactory/files/artifactory/

下载个最新版本就可以了。

 

3.       安装

安装的话,官网有提供文档,跟着做就可以了,地址:

Windows: http://www.jfrog.com/confluence/display/RTF/Installing+on+Windows

Linux: http://www.jfrog.com/confluence/display/RTF/Installing+on+Linux+Solaris+or+Mac+OS

 

我这里下载的是rpm包,直接安装就可以,也可以通过yum来查询服务器是否有该软件yum list | grep artifactory

 

通过执行命令:rpm -ivh artifactory-3.4.0.rpm 来安装该软件,对应的安装目录:/opt/jfrog/artifactory

 

通过查询chkconfig --list 服务来看,artifactory已经加入到开机启动的服务里去了,很方便

Service artifactory start

这样就算安装完成了

 

默认访问地址访问地址:    http://xxx.xxx.xxx:8081/artifactory

 默认用户名和密码:   admin     password123

 

4.  配置

配置setting.xml文件,该文件需要指向上一步配置的本地服务器,这样在下载jar的时候,会优先去本地服务器进行下载,然后在到网络上去下载。

计算机生成了可选文字:artifact rg Home Welcome Client Settings Maven Settings Gradle Build Script Ivy Settings O Home Maven Settings Maven Settings Generator Releases libs-release Plugin Releases plugins-release Mirror Anya remote-repos Admin ogged In as admin Loa Out nerate Settings Snapshots libs-snapshot Plugin Snapshots plugins-snapshot •

 

 

 

 

 

 

 


0 0
原创粉丝点击