Eclipse创建maven项目后,没有src/main/java目录
今天用一个新的Eclipse来创建maven项目,发现创建之后没有生成src/main/java目录,同时我手动来生成,也不能成功,提示该目录已经存在了,最后找到原因,是因为我选择的JRE不对,应该选择本机安装JDK带的JRE,而不是IDE的,下面就修改下
对应Project-->Properties-->Java Build Path-->JRE System Library-->edit
修改为安装的JRE
这样目录就有了
定义Spring maven下载
2014年9月28日
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远程部署应用
2015年2月16日
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的管理地址,注意后面的manager为tomcat的管理接口地址
2.server:这个为一个配置信息,需要与本地仓库setting.xml文件里面的配置名称一样
3.path: 部署的应用名称
2. 修改本地maven库setting.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基础信息
2015年3月11日
13:38
A. Maven安装
1.下载maven
maven是Apache组织下的一个开源项目,是项目管理工具,主要是项目构建,依赖管理,项目信息管理这几个方面,下载的地址:http://maven.apache.org/
下载到本地之后,解压到对应的文件夹,解压的目录结构如下:
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文件,定义的groupId为log4j, artifactoryId为log4j,version为1.2.17,所以在本地仓库里面对应的目录就应该是
log4j/log4j/1.2.17这个目录下面,如:
B. Maven集成到Eclipse
一般会将maven插件集成到eclipse中,方便导入maven工程项目以及执行一些基本的命令操作
集成有两种方式,一个是直接下载插件到本地,然后通过链接文件来加入,这种方式不推荐,因为eclipse是非安装软件,直接拷贝就可以使用,所以如果通过这种方式拷贝给别的电脑使用的时候,会比较麻烦,这里推荐使用在线安装的方式来做,由于maven插件的官网已经在8月份就关闭了,可以查看:https://support.sonatype.com/entries/24316542.html有说明
所以现在通过Help-->Install new software去安装会比较麻烦,好在Eclipse为我们提供的自己的应用商店
通过点击Help-->Eclipse Marketplace,打开在线商店,然后输入maven来进行搜索
选择这个插件来进行安装,然后一路安装下去,最后会提示重启eclipse,重启之后通过Windows-->Perferences,会看到有maven的选项,说明安装成功。
这里需要配置下,使用我们上一步下载到本地的maven,所以需要指向目录,
Maven-->Installations-->Add 在弹出的界面中,找到我们对应maven的目录就可以了,然后点击finish按钮完成配置,如果之前的maven本地仓库目录位置有变动,那么这里还需要点击User Settings选项来进行配置
好了,maven已经配置好了之后,那么来创建一个maven项目,通过New-->Project-->Maven-->Maven Projec来进入maven项目创建向导
单击Next,这里只是创建一个简单的web项目,如果想创建一个jar文件,那么直接将Create a simple project勾选上就可以了
单击Next下一步,选择需要的插件,这里是创建web项目,所以就选择下面这个插件
然后点击Next,最后就是写入我们这个项目的maven坐标,也就是groupId和artifactoryId
groupId一般写入公司域名,类似包名,如: cn.com.scca
artifactoryId 一般写当前项目的名称,如留言板项目对应 ibook
然后点击finish完成,开始创建项目
项目创建完毕后的结构如下:
这里如果src/main/java目录没有出来,那么可以手动去创建这个目录,如果创建时提示目录已经存在,那么右键项目Build path-->Configure build path,在弹出的窗口中,选择JRE System library,然后点击edit,设置我们自己设置好的jre
这样就可以看到对应的目录结构了,这里简单说下目录结构
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文件是否已经引入
这个有个属性 scope,表示jar文件的应用范围,这里写的是test,说明只是在测试阶段使用,当我们打包的时候,这个jar文件不会被打入war包中,这样可以减轻war包的大小,还有其他的一些属性,比如编译,运行,本地等
运行基本的命令:
右键项目-->Run as 可以看到有几个基本的maven命令
常用的就是mvn clean和mvn package两个,一个是清除项目打包信息,一个是打包
执行之后都需要看到SUCCESS 才说明执行成功,如:
C. Maven常用命令
1. maven项目转eclipse项目
通常我们提交到svn的代码都是这样的结构:
这个通过maven项目时可以导入eclipse的,但是如果没有安装maven的话,那么导入就会存在一些问题,这里maven为我们提供的一个命令: mvn eclipse:eclipse 这样就可以转换为eclipse工程,然后就可以通过普通项目来导入
这个时候就生成了eclipse的一些配置信息
如果要还原回去,直接输入命令: mvn eclipse:clean
又恢复到初始状态,很方便,当然用其他的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来直接对项目进行编译
4.清除命令
有时候需要执行清除命令,也就是将target目录下的文件都删除,那么执行运行mvn clean
即可将这个下面的文件删除
5.打包
先来说下普通的打包,也就是我们开发时期的打包,直接运行mvn package,当然也可以先运行mvn clean,也可以两个命令联合起来执行,如 mvn clean package 这样就会先清除,然后再执行打包,maven就是这么神奇。
从日志可以看到已经在target目录生成了最终的产品
这里也可以将源码也打成jar文件,上传到maven库之后,方便查看,这个配置大家就去网上看看吧,很多的。
这里有个问题,现在生成的jar文件是SNAPSHOT版本,也就是说不是正式版,可以通过修改pom.xml文件里面的version来解决,但是这个是不规范流程
6.版本发布
通常我们在正式版本发布的时候,会将当前的代码也推送到svn的tags目录一份,这样在客户那边版本出了问题之后,那么也可以提取对应的版本出来修正,然后提交,就不容易出现混乱。
版本控制
也就是说让maven来替我们操作svn上面的版本控制,那么也就是需要用到svn的命令,在命令行输入svn --version看该命令是否能执行,如果不能执行,说明svn版本过低或者没有安装subversion工具。
好吧,还是以刚才的ibook项目来说,首先打开我们的把这个项目提交到svn的trunk目录。
提交这里也简单说下,有些文件不需要提交到svn,实际上我们要提交的也只有下面的这些文件:
其他的都不需要提交上去,对应的jar文件也不需要提交上去,都是将项目拿下来之后,通过pom.xml文件去下载对应的jar文件的。在svn上面看到的目录机构如下:
好了,打开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一份代码到本地打包,最好不要用正在开发的代码进行打包,不然有可能会因为本地开发文件没有提交,而造成打包失败,如下:
所以现在先checkout一份代码到本地,然后开始执行版本发布
现在开始尝试打包,执行命令 mvn release:prepare -DdryRun=true
回车之后,这里会提示你当前的版本,然后要求你是否输入新的版本号,输入之后,直接回车就可以了
接着会让你输入tag的版本号,一般我们根据提示信息来输入就可以了,除非是有大的版本跳动,
这里输入ibook-0.0.1 然后回车
接着会让你输入这次版本发布之后下一个版本是多少,一般也是根据提示信息输入就可以了
输入0.0.2-SNAPSHOT 然后回车
回车之后,等待发布,当出现SUCCESS的时候,说明版本发布成功了。
这个时候,看到我们项目的目录多了一些文件
这些是记录我们当前发布版本的文件,最好是留着,因为这个可以帮助我们回滚版本。
现在尝试发布版本已经没有问题,那么就开始正式发布版本
先运行mvn release:clean 清除版本文件
文件都清除之后,开始正式发布,输入命令:mvn release:prepare,执行成功之后,我们再来看看本地文件夹的变化
打开pom.xml文件,我们发现版本号已经变化了
再看看SVN文件夹
已经将0.0.1版本的代码牵到tags目录,最后再看我们target里面打的包文件
到这来发布版本就差不多结束了
7.版本回滚
有时候难免会打完包之后,又有点小bug,但是又不想升级版本,那么久需要回滚当前的版本,所以之前打包的那些文件不要删除就是这个原因。
在命令行执行: mvn release:rollback
回滚之后,我们看到pom.xml里面的版本号又恢复到0.0.1-SNAPSHOT了,说明版本回滚成功,那么可以再次发布版本。
注意:回滚版本之后,需要手动去删除tags目录下面的代码
8.生成站点
有时候为了给别人展示数据,那么需要写一个网页,maven为我们提供了一个插件site,在命令行输入mvn site即可,执行完毕后,会在target目录生成一个文件夹 site,进入之后,打开index.html就可以浏览一些项目的信息
9.查看当前项目的依赖关系
有时候引入一些jar文件,会自动把另外的jar文件引入进来,但是有些时候就会出现版本冲突的问题,那么可以在命令行输入 mvn dependency:tree来查看依赖关系
这个就是现在项目的依赖关系
D. Maven jar文件处理
有时候我们需要引入一个jar文件,但是不知道这个jar文件的groupid和artifactoryid,那么可以到网站上查询,现在很多jar文件都会有这个信息,比如http://mvnrepository.com/ 可以查询,也可以下载
如果是我们自己的jar文件,那么在执行install之后,就会安装到本地仓库,下次可以使用,对于一个团队来说,可以上传到内部的服务器,比如artifactory或者Nexus来做,现在125上面虚拟机 centeros上面已经安装好了artifactory,那么大家的下载地址可以指向那台机器,但是这台机器没有联网,所以只能在公司使用,在其他地方使用的时候,下载文件就会先去链接这台电脑,然后超时了再去网络下载,比较慢。
maven库地址:http://mvnrepository.com/
Artifactory安装使用
2014年6月6日
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的时候,会优先去本地服务器进行下载,然后在到网络上去下载。