怎么在eclipse中maven使用技巧
一、安装配置Maven
1安装Maven,下载一个maven包解压,然后配置maven环境变量(配置完成后在dos窗口用mvn命令测试下)。
2在Eclipse中安装Maven插件
3在Eclipse中配置Maven的settingxml,即在Preference——》Maven——》User Setting中配置(具体使用哪个settingxml需要根据你的项目情况而定)。
4拷贝repository包,虽然这个不是必须的,一般通过项目在线更新jar包就可以,但是如果第一次的话最好是拷贝,因为一般项目都会比较大,jar包也会很多很多,在线下载的话会很慢。
二、引入和安装Maven项目
如果第一步操作成功的话,你就可以在import窗口里面看到Maven的选项了,选择Import a exsiting Maven project 就行,前提是你先把Maven项目从版本库中down下来。
如果你引入的这个项目A被别的Maven项目B引用了,那么我们最好是让项目B直接使用本地的项目A,而不是从repository中寻找对应项目A的jar包。这样会避免jar包更新出问题(比如项目A经常更新,jar包可能会更新不及时)。这样的话我们就需要将我们的项目A
install到本地,install有两种方法:
1右键项目选择Maven菜单的install即可。
2使用命令,即将目录转换到该项目目录下,然后执行mvn clean install -Dmaventestskip=true即可。(推荐该方法,因为跳过了测试)
三、更新jar包
更新Maven的jar包应该是对于Maven项目最常用的操作了(因为项目一直在更新,那么jar包肯定也一直在变)。
那么对于更新Maven的jar包的方法是:右键项目选择Maven菜单下的update
project,然后在弹出框中有一个offline的选项,一般情况我们直接勾选offline(这样它之更新本地的jar包,比如上面提到的项目A的更改会更新,offline的速度很快);当然如果offline不行的话就需要取消对offline的勾选,即在线更新jar包,这样它会从远程服务器中下载最新的jar包。
更新完jar包后一定要注意修改项目的properties,要手动改下面几个地方(因为更新完jar包会自动更改这些配置):如果是java项目只需要更改1即可,web项目需要更改1,2,3
1将build path中的jdk版本改成你所需要的。
2将Deployment Assembly中的自动生成的两个文件夹删除(好像是tmp和tmpwebapp),添加你的WebRoot文件夹。
3如果你的项目有默认的别名,还需要再手动改一下Web Project Setting。
四、常见小问题
虽然在上面的几个步骤中看起来很简单,但是由于我们的maven插件不太好用,所以也会经常出一些小问题。
1install项目失败
这个情况一般会发生在使用右键项目install的方法,因为它有一个test的过程,所以有时候会test失败,这时候我们只需要换成第二种使用install命令的方式就没问题了。
2更新jar包失败
经常会有这样一个情况,明明都在线更新jar包了,可是jar包却还是很久以前的,然后在启动tomcat的时候总是会报ClassNotFound或者某个方法不存在的错误。
对于这种情况我们最好是找到是哪个包,然后在repository中找到这个包删掉,之后再update那么这个包就会变成最新的了。
3项目莫名其妙的启动不了
有时候我明明都在线更新了jar包,然后还clean项目了,但是就是启动失败,仔细一瞧,problems窗口中有错误提示,有什么cycle引用,这时候一般是因为有引用本地安装的项目还有引用repository中jar包,所以可能是你repository中的jar包最新了但是你本地引用的项目没有更新,这时我的无忧做法是:
将引用到的项目全部update(记得update完后修改jdk),然后clean,然后重新install(最好使用命令方式),最后再将你的项目update然后clean,基本就没有问题了。
五、小结
以上这些内容虽然不够系统但是很实用,是最近在工作中频繁会遇到的,将经验分享给大家,也希望大家有好的建议也可以一起分享。
1、把下载下来的maven的zip文件随便解压到一个地方,比如:f:\tool\apache-maven-325
2、设置环境变量(雷同JAVA_HOME):
新加一个"MAVEN":
把"MAVEN"加到Path中:
3、打开命令行看看maven是否已经正确配置:
能看到上面的信息说明已经配置正常。
4、在命令行中输入:
mvn help:system
运行结果:
此命令运行完后,将会在windows用户文件夹自动生成一个“m2”的文件夹,里头有一个repository目录,比如:
C:\Users\xxxxx\m2
这是本地用户仓库,未来使用maven所自动下载的jar包会下载到这。
5、Eclipse配置Maven:
点击eclipse中的window->Perference->Maven->Installations,设置自己下载的Maven。
原eclipse自带的maven可移除,因为大多是版本不一样,会导致后面有莫名的问题。
6、新建Maven的Web项目方法:
61)Ctrl + N:
这样,一个Maven的web项目已经建成。但默认,Project Facet中的Java版本是15的,要把它修改为本地的java版本。
62)右键项目->Properties,把它修改为:
我这里是使用JBoss,所以要把Dynamic Web Module中的Runtimes设为JBoss:
62)以Maven的默认契约新建一个src/main/java源文件夹:
这个文件夹需要手工建,不能以新建源文件夹方式来建。(估计是BUG,总会提示已经存在,但事实上又没有)
63)打开pomxml文件,加入依赖(dependency)
<project xmlns="http://mavenapacheorg/POM/400" xmlns:xsi="http://wwww3org/2001/XMLSchema-instance"
xsi:schemaLocation="http://mavenapacheorg/POM/400 http://mavenapacheorg/maven-v4_0_0xsd">
<modelVersion>400</modelVersion>
<groupId>commymavenweb</groupId>
<artifactId>testweb1</artifactId>
<packaging>war</packaging>
<version>001</version>
<name>testweb1 Maven Webapp</name>
<url>http://mavenapacheorg</url>
<properties>
<springframeworkversion>320RELEASE</springframeworkversion>
<freemarkerversion>2320</freemarkerversion>
<modelmapperversion>072</modelmapperversion>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>381</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>orgspringframework</groupId>
<artifactId>spring-core</artifactId>
<version>${springframeworkversion}</version>
</dependency>
<dependency>
<groupId>orgspringframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${springframeworkversion}</version>
</dependency>
<dependency>
<groupId>orgfreemarker</groupId>
<artifactId>freemarker</artifactId>
<version>${freemarkerversion}</version>
</dependency>
<dependency>
<groupId>orgmodelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>${modelmapperversion}</version>
</dependency>
</dependencies>
<build>
<finalName>testweb1</finalName>
</build></project>
比如我上面加入了几个依赖:spring、freemarker、modelmapper。
保存pomxml,eclipse会自动去到中央服务器中下载对应的jar包,jar包保存在用户文件夹的/m2下
这里,Maven的eclipse配置基本已经完成了。
7、构建和生成Maven
Eclipse中右键项目->Run As->Maven install
Maven默认会把生成的war文件、class所编译的文件都放在项目文件夹中的target目录下
maven--私服的搭建(Nexus的使用)和注意的问题
私服是什么
私服,私有服务器,是公司内部Maven项目经常需要的东东,不总结一下,不足以体现出重视。Nexus是常用的私用Maven服务器,一般是公司内部使用。下载地址是http://wwwsonatypeorg/nexus/go。默认端口8081,这里我选择最新版nexus-250-04。
常用功能
Nexus常用功能就是:指定私服的中央地址、将自己的Maven项目指定到私服地址、从私服下载中央库的项目索引、从私服仓库下载依赖组件、将第三方项目jar上传到私服供其他项目组使用。
开启Nexus服务后访问url地址http://localhost:8081/nexus/(推荐使用自己的ip地址),之后登录系统,用户名密码分别是:admin/admin123
最频繁的就是点击左侧菜单栏的Repositories按钮
一般用到的仓库种类是hosted、proxy。Hosted代表宿主仓库,用来发布一些第三方不允许的组件,比如oracle驱动、比如商业软件jar包。Proxy代表代理远程的仓库,最典型的就是Maven官方中央仓库、JBoss仓库等等。如果构建的Maven项目本地仓库没有依赖包,那么就会去这个代理站点去下载,那么如果代理站点也没有此依赖包,就回去远程中央仓库下载依赖,这些中央仓库就是proxy。代理站点下载成功后再下载至本机。笔者认为,其实Maven这个自带的默认仓库一般情况下已经够大多数项目使用了。特殊情况时在配置新的仓库,指定url即可,一般熟悉ExtJS的人操作这个Nexus都没什么问题,单词不是很难,不明白的查查单词基本差不多。就是如果Sonatype公司对其做了国际化的处理就更好了。
hosted 类型的仓库,内部项目的发布仓库
releases 内部的模块中release模块的发布仓库
snapshots 发布内部的SNAPSHOT模块的仓库
3rd party 第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去
proxy 类型的仓库,从远程中央仓库中寻找数据的仓库
group 类型的仓库,组仓库用来方便我们开发人员进行设置的仓库
maven项目索引
下载Maven项目索引,项目索引是为了使用者能够在私服站点查找依赖使用的功能
保存后后台会运行一个任务,点击菜单栏的Scheduled Tasks选项即可看到有个任务在RUNNING。 下载完成后,Maven索引就可以使用了,在搜索栏输入要搜索的项,就可以查到相关的信息。例如spring-core
就可以检索出它的相关信息,包括怎么配置依赖信息。我们要想使用这个私服仓库,先在项目pom中配置相关私服信息
指定仓库
[html] view plaincopy
<repositories>
<repository>
<id>nexus</id>
<name>nexus</name>
<url>http://1921681103:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
指定插件仓库
[html] view plaincopy
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>nexus</name>
<url>http://1921681103:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
这样只有本项目才在私服下载组件
这样这个Maven项目构建的时候会从私服下载相关依赖。当然这个配置仅仅是在此项目中生效,对于其他项目还是不起作用。如果相对Maven的其他项目也生效的话。需要修改全局的settingsxml文件。
修改settingsxml为
追加激活profile
[html] view plaincopy
<activeProfiles>
<activeProfile>central</activeProfile>
</activeProfiles>
之后所有本机的Maven项目就在私服下载组件。(这样比较好)
项目的发布
[html] view plaincopy
<distributionManagement>
<repository>
<id>user-release</id>
<name>User Project Release</name>
<url>http://1921681103:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>user-snapshots</id>
<name>User Project SNAPSHOTS</name>
<url>http://1921681103:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
注意配置了还是发布项目到私服失败,原因为没有权限,会出现401错误码,原因就是权限不够。
配置权限在settingsxml
注意Respository中的id一定要和server下的id一致,切记!!否则出现权限问题。
然后运行发布
clean deploy
在控制台发布成功
然后进入到私服上的仓库中,看一下确实存在刚刚发布的项目
实现将请求转发到其他服务器。
为 location 映射的服务器设置协议、地址、URI。
设置对代理服务器响应头中的 Location 和 Refresh 字段的重写。
转发请求到代理服务器时该指令允许重新定义或者追加消息头中的字段。
自带参数可以通过 proxy_set_header 指令使用。
$proxy_host
在 proxy_pass 指令中定义的代理服务器的名称和端口
$proxy_port
在 proxy_pass 指令中定义的代理服务器的端口,或者是指定协议的默认端口
$proxy_add_x_forwarded_for
表示客户端请求头中的 X-Forwarded-For 字段,该字段中包含 $removte_addr 变量,通过逗号 , 分隔。如果客户端请求头中没有出现X-Forwarded-For 字段, remote_addr`。
ngx_http_proxy_module中的其他参数请参考 官方网站
spring web service系列1
spring web service系列2
spring web service系列3
maven配置文件settingsxml详解
Nginx转发请求过程解析
Nginx中的负载均衡算法
Nginx upstream指令配置说明
Nginx中虚拟服务器server指令配置说明
Nginx中ngx_http_core_module相关指令配置说明
Java自带JVM监控工具jstat使用详细说明
Java自带JVM监控工具jps使用详细说明
Java自带故障分析工具jmap工具使用说明
Java自带故障分析工具jhat工具使用说明
在eclipse配置maven之前需要我们做好准备工作,如下:
1 安装jdk
2 已安装好 maven,将maven配置成功
3 下载Eclipse,解压缩安装完成,建立工作空间。
eclipse配置maven
检查eclipse的maven插件是否安装成功,如图:
若没有安装maven插件,我们需要先安装maven插件。
安装maven插件
eclipse安装插件有常用两种方式,在线方式和离线方式。这两种安装方式我建议大家使用离线方式,离线方式更加方便,简单,这两中安装方式网上的资料很多,也非常简单,我就不再累述了。给大家推荐一篇即可:
安装Eclipse Maven插件的几种方法
配置maven
配置maven安装目录
依次打开Window –> Perferences –> Maven ,展开Maven的配置界面,如上图;
然后点击Installations –> add 选择maven安装目录,这里我的Maven安装目录为D:\maven\apache-maven-323,选择你的Maven安装目录,并点击确定, 之后可以点击Apply,点击OK,即可完成。
然后, 我们在Maven的配置界面,设置User Settings
Global Settings选择maven 安装目录下conf文件夹下的settingsxml,这里我的Maven安装目录为D:\maven\apache-maven-323\conf\settingsxml,选择你的Maven安装目录,检查Local Repository 项,如果为D:/maven/repository则配置成功,否则重新配置上一步。
恭喜你,现在我们已经配置好了eclipse,下面,我们可以创建maven项目了。
创建maven项目
我们在Eclipse菜单栏中点击File->New->Other->Maven,在弹出的对话框中会看到
填写Group id和Artifact id, Version默认,Packaging默认为jar,Name,Description选填,其他的不填 。
之后点击Finish即可
4 前三步就可以创建一个简单的maven项目,如果我们想创建一个Maven的web项目,把第三步的Packaging的类型改为war,之后点击Finish即可
选择Maven Project,请选中Create a simple project(skip archetype selection),之后点击Next 。
这里面内容挺多且复杂,如果感兴趣可以关注魏艾斯的博客里面关于阿里云服务器的相关内容,可以为你提供一些参考建议,帮你快速开发程序。
ejet服务器介绍?
eJetWeb服务器是利用GitHub上的开源项目adif数据结构和算法库和ePump框架,用C语言开发的一个事件驱动模型、多线程、大并发连接的轻量级的高性能Web服务器,支持HTTP/10和HTTP/11协议,并支持HTTPProxy、Tunnel等功能。
在Linux下,eJetWeb服务器编译成动态库或静态库的大小约为300K,可集成嵌入到任何应用程序中,增加应用程序使用HTTP通信和服务承载的能力,使其具备像Nginx服务器一样强大的Web功能。
eJetWeb服务器完全构建在ePump框架之上,利用ePump框架的多线程事件驱动模型,实现完整的HTTP请求-->HTTP响应事务流程。eJet并没有创建进程或线程,利用ePump框架的事件驱动多线程,高效地运用服务器的CPU处理能力。
vmess协议优缺点?
Vmess(也称为VMess或VMess协议)是一种基于TCP或mKCP协议的加密通信协议,被广泛用于虚拟专用网络(***)或代理服务器。
Vmess协议的优点包括:
安全性较高。Vmess使用AES-128-GCM和TLS等先进加密技术,以确保通信过程的安全性和隐私性。
稳定性较好。Vmess可以通过自适应多路复用(AMUX)技术来提高连接稳定性和传输效率。
自定义灵活性高。Vmess可以通过配置文件进行自定义设置,包括服务器地址、端口、加密方式、传输协议等。
兼容性较好。Vmess可以在Windows、MacOS、Linux、iOS和Android等各种操作系统上运行,且可以与许多第三方软件和服务集成。
Vmess协议的缺点包括:
配置和使用比较复杂。由于Vmess具有高度的自定义灵活性,因此需要一定的技术知识和经验来进行配置和使用。
可能会受到防火墙限制。一些网络防火墙可能会封锁Vmess协议的流量,从而影响其使用效果。
总体而言,Vmess协议是一种可靠、安全且灵活的通信协议,适合需要高度定制和安全保护的***和代理服务。
nginx反向代理注意事项?
1防火墙必须关闭:三个服务器的防火墙必须关闭
systemctlstopfirewalld
systemctlstatusfirewalld
firewall-cmd--state
2nginx所在的服务器的selinux必须关闭
3tomcat的webapps下必须有maven_cloud4war
4开启所有的tomcat:
由ip:8080/maven_cloud4通过tomcat访问
5安装完nginx通过ip:80访问nginx的首页看看welcome
6配置/etc/nginx/confd/cloudconf(注意名字不能是:cloudconfig)
upstreamcloud4{
server192168198131:8080;
server192168198134:8080;
server192168198135:8080;
}
server
{
listen80;
server_name192168198131;
location/mc4{
proxy_passhttp://cloud4/maven_cloud4;
proxy_cookie_path/maven_cloud4/mc4;
}
}
http头部的格式和参数说明?
php发送http请求的最关键点在于构造一个符合http协议的头部,http请求的信息一般以下几个方面构成
(1)httpmethod:一般有post,get这两种
(2)requesturl:http所请求的资源
(3)httpversion:用哪一个http版本协议,常见的有HTTP/11和HTTP/10
(4)Host:请求的主机名称
(5)User-Agent:用户代理类别,一般是浏览器名称,如firefox的User-Agent:Mozilla/50(X11;U;Linuxi686;en-GB;rv:19215)Gecko/20110303Ubuntu/1004(lucid)Firefox/3615一般从User-Agent中可以知道用户用的是什么类型的浏览器和操作系统,以级他们的版本
(6)Accept:为客户端可以接受的媒体类型,常见的有text/html,application/xhtml+xml,application/xml;q=09,/;q=08
(7)Accept-Language:可以接受的语言类型,如en-gb,en;q=05
(8)Accept-Encoding:可以接受的编码类型,如gzip,deflate,可以接受压缩
(9)Accept-Charset:可以接受的字体编码,如ISO-8859-1,utf-8;q=07,;q=07
(10)Content-Type:内容传送的类型,如application/x-www-form-urlencoded,如普通的form提交方式
(11)Cookie:要传送到服务器上的cookie数据,如AJSTAT_ok_times=2;SESS_ID=c8c293c948c233a9a89aa11fb08c61af5f29c7ef;AJSTAT_ok_pages=2
(12)Content-Length:除了头部,传送内容的长度。
(13)Referer:也就是先前访问的页面
公司局域网用代理服务器上外网如何设置?
启动python程序或python解释器前,先设置代理地址在windows下应该是这样的:
Linux可以写成一行题主提到在代码中设置代理,urllib2和requests是可以设置http代理的,参考UsinganHTTPPROXY
plugin>
<groupId>orgapachetomcatmaven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>22</version>
<configuration>
<port>8888</port>
<path>/</path>
</configuration>
</plugin>
上面是maven项目内置的tomcat插件的配置
运行直接报错:
在这里插入描述
接下来各种百度,没找到解决方案,百度上并不是没有解决方案,而是我百度的关键词不对。
最后,没找到解决方案直接使用外部的tomcat服务器
配置好了直接启动,然后终于看到结果了,开心开心,但是那个问题没解决,不甘心,接下来看报错的地方,然后发现了新大陆
上面圈住的地方不是我们熟悉的人吗
再然后接着直接百度关键词,然后一找又发现新大陆了
在这里插入描述
然后仔细查看pom文件,发现了这个
在这里插入描述
接着为它加上生命周期
接着再启动发现没有问题了
在这里插入描述
apache
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。
Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“apatchyserver”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个ApacheWeb站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3Consortium、FinancialTimes等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。
Apache的诞生极富有戏剧性。当NCSAWWW服务器项目停顿后,那些使用NCSAWWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了ApacheGroup,后来这个团体在NCSA的基础上创建了Apache。
Apacheweb服务器软件拥有以下特性:
支持最新的HTTP/11通信协议
拥有简单而强有力的基于文件的配置过程
支持通用网关接口
支持基于IP和基于域名的虚拟主机
支持多种方式的HTTP认证
集成Perl处理模块
集成代理服务器模块
支持实时监视服务器状态和定制服务器日志
支持服务器端包含指令(SSI)
支持安全Socket层(SSL)
提供用户会话过程的跟踪
支持FastCGI
通过第三方模块可以支持JavaServlets
如果你准备选择Web服务器,毫无疑问Apache是你的最佳选择。
Apache有名的几个项目介绍
HTTPServer
这个在前面的段落介绍过了,Apache已经是他的代号了
ActiveMQ
免费开源由java编写符合JMS11标准的消息中间件。
另外,它也支持通过除java语言外的语言的使用
Ant
这个太出名了。标准的批处理工具。是一套基于java的程序打造工具
Commons
一些常用的工具类库,包括common-pool,dbcp,fileupload,Common-beans等。
Excalibur
它的主要产品是一个由java写成的,名字叫做Fortress(要塞)的轻量级的可嵌入式反向控制容器。
iBATIS
并入的一个项目,是ORM的一个很流行的工具
Geronimo
是Apache软件基金会为了创造一个兼容j2ee的容器,而整理出来的一个新成果
Jakarta
许多Java子项目的集成,tomcat,ant等就是从这里孵化出去的。
James
是一套用java开发的邮件、新闻组、消息服务器。它使用的avalon组件框架。目前支持SMTP,POP3和NNTP很快也会支持IMAP
Logging
基于java的可靠,快速,扩展性强的日志工具
Maven
是一套java开发的工程综合管理工具。它基于工程对象模型(POM)的理念
Portals
门户产品
Struts
一套通过servlets和jsp来搭建web应用的MVC框架
Tomcat
用量最大的免费的Java服务器
0条评论