jetty文件上传
A. 如何通过 nexus 建立自己本地仓库
安装Nexus
我们从http://nexus.sonatype.org/downloads/ 来获取最新版本,目前最新版本为1.3.4
Nexus提供了两种安装方式,一种是内嵌Jetty的bundle,只要你有JRE就能直接运行。第二种方式是WAR,你只须简单的将其发布到web容器中即可使用。
1)Bundle方式安装
解压nexus-webapp-1.3.4-bundle.zip 至任意目录,如D:\tools ,转到目录D:\tools\nexus-webapp-1.3.4\bin\jsw\windows-x86-32 ,运行Nexus.bat ,如果你是在linux下安装,那么就下载nexus-webapp-1.3.4-bundle.tar.gz,解压后转到${NEXUS_HOME}/ nexus-webapp-1.3.3\bin\jsw\linux-x86-32,它还支持solaris,macos等操作系统。当你看到“Started [email protected]:8081”之后,说明Nexus启动成功了,然后打开浏览器,访问http://127.0.0.1:8081/nexus,通过admin的帐号(admin)和密码(admin123)登录你会看到如下的页面:
如果有新版本发布,会有提示在默认页面上。
这里,可以管理仓库,配置Nexus系统,管理任务,管理用户,角色,权限,查看系统的RSS源,管理及查看系统日志,等等。
War方式安装
你可以同过war的方式以web应用的形式发布到你的应用服务器,比如tomcat。你所要做的就是下载war版本的文件,然后放到应用服务器的发布目录即可,这里就不多讲了。
到此我们已经安装好Nexus,下面我来介绍下一些我们常用的功能和使用:
配置中央仓库
先看一下界面:
在左边菜单栏里选择Repositories,然后会出现右边的画面,右边上半部分是列出来的repository,黑体字是类型为group的repository. 这里简单介绍下几种repository的类型:
hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。
proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
group,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。
Maven central是Maven的中央仓库,点击它并选择configuration标签栏,我们会看到下面的页面:
这里有几个项目是我们可能会经常用到的:
Override local storage location: 在这个选项你可以配置你的Nexus本地仓库的存放地址,用来覆盖其默认的存放地址
Remote storage location: 这里是远程仓库的地址,为了提高代理速度,你可以修改为国内的镜像地址。默认值是http://repo1.maven.org/maven2/
Download remote indexes: 这里配置是否下载远程索引文件,模式是false, 建议配置为true,这样我们便可以通过索引文件来搜索我们需要的构件。
添加代理仓库
Maven central是一个比较大的代理仓库,如果你需要添加的一个代理仓库,那么可以在点击左边惨淡栏里面的Repositories,然后右边的页面点击add -> add proxy repository, 之后出现以下页面:
填写相关信息保存即可。通常情况下,使用预设的代理仓库已经能够满足大部分项目的需求了, 只有在特殊需求的情况下才会参加代理仓库.
管理本地仓库
我们前面讲到类型为hosted的为本地仓库,Nexus预定义了3个本地仓库,分别是Releases, Snapshots, 3rd Party. 分别讲一下这三个预置的仓库都是做什么用的:
Releases: 这里存放我们自己项目中发布的构建, 通常是Release版本的, 比如我们自己做了一个ftp Server的项目, 生成的构件为ftpserver.war, 我们就可以把这个构建发布到Nexus的Releases本地仓库. 关于符合发布后面会有介绍.
Snapshots: 这个仓库非常的有用, 它的目的是让我们可以发布那些非release版本, 非稳定版本, 比如我们在trunk下开发一个项目,在正式release之前你可能需要临时发布一个版本给你的同伴使用, 因为你的同伴正在依赖你的模块开发, 那么这个时候我们就可以发布Snapshot版本到这个仓库, 你的同伴就可以通过简单的命令来获取和使用这个临时版本.
3rd Party: 顾名思义, 第三方库, 你可能会问不是有中央仓库来管理第三方库嘛, 没错, 这里的是指可以让你添加自己的第三方库, 比如有些构件在中央仓库是不存在的. 比如你在中央仓库找不到Oracle 的JDBC驱动, 这个时候我们就需要自己添加到3rd party仓库.
你也可以创建自己的本地仓库,点击Repository面板上方的Add按钮,然后选择Hosted Repository,然后在下方的配置面板中输入相关信息, 这里我们不再需要填写远程仓库地址,根据自己的需要选择Release或者Snapshot,如图:
Maven仓库组
仓库组的概念是Maven没有的,通过前面介绍可以了解到, 我们可以建立多个proxy代理仓库,hosted本地仓库, 如果没有仓库组的概念,我们如果需要引用这些仓库的是时候需要一一加入到我们的setting.xml里面去, 有了仓库的组的概念, 我们只需要做一次引用就可以了,把我们需要的仓库加入到仓库组即可.像这样:
<repositories>
<repository>
<id>nexus</id>
<url>http://127.0.0.1:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
Nexus中预设了2个仓库组,public repositories和public snapshot repositories. 如图:
这个仓库组默认包含本地仓库Releases, snapshots, 3rd party和代理仓库Maven Central. 你可以在Configuration配置页添加仓库到这个仓库组. 如果需要你还可以创建一个仓库组,如图:
点击 Add->Repository Group
出现New Repository Group界面后,填入ID, name 等相关信息, 在右边Available Repositories 栏里可以选择你要添加的仓库到你新建的仓库组.
通过Nexus搜索构件
在我们实际使用构件的过程中通常遇到一个问题,有时候我紧紧知道我所需要的构建的大致名字,并不知道全称或group id, 这是件非常头疼的事情. Nexus基于Nexus indexer的搜索功能帮我们解决了这个问题.
要是用搜索功能, 必须要有索引文件, Nexus默认是不建立索引文件的,因为像中央仓库这样的索引文件的建立需要耗费比较大的网络资源,仅索引文件就要几十兆. 要开启中央仓库的索引文件下载功能需要在Maven Central的配置页面, 把Download Remote Indexes选择true. 如图:
这样设置以后, Nexus会自动从远程中央仓库下载索引文件, 为了检验索引文件自动下载是否生效,可以却换到Browse:
如果出现先以上文件夹,那说明索引文件已经建立.
下面我试一下搜索功能, 在左边菜单栏里面有个Artifact Search, 在输入框里面输入你想要搜索的构件名字,比如: testing, 那么查询结果如下:
这是模糊查询的结果,当然如果你知道更多信息,比如版本号等,你可以使用高级搜索,点击高级搜索后,右边界面会提供集中搜索方式:keyword, classname, GAV, checksum
比如我们这里选择GAV模式, 而且我只知道artiface name : testng和版本号5.8, 其他的我不知道, 那么就在artifact 和 version处分别输入testng 和 5.8 , 搜索结果如下:
你如果你不知道知道构件的名称, 只知道classname, 那么你也可以通过class name 的方式搜索,这里就不再赘述
当你选择一项搜索结果,在页面的下方会出现这个构件的详细信息, 并且会列出这个构件的Maven依赖配置, 你可以直接拷贝到你的pom文件中使用,这是个非常实用的功能:
在Maven中使用Nexus
到此为止我们介绍了如何安装和使用Nexus以及其基本配置, 下面我们介绍下如何让Maven来使用Nexus本地仓库用来替代使用远程仓库. 在Maven使用Nexus本地仓库只需稍作配置, 在settings.xml中加入以下代码:
<profile>
<id>dev</id>
<repositories>
<repository>
<id>nexus</id>
<url>http://127.0.0.1:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<url>http://127.0.0.1:8081/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>
这里配置了repository和pluginRepository, Maven在使用第三方构件和插件时是分开来配置的,所以如果我们也希望插件的下载也通过我们的本地仓库来下载,那么我们就需要配置pluginRepository.
红色字体部分就是我们之前安装的Nexus的地址, 这个地址可以是你们公司局域网内部的一台仓库服务器.
<releases> <enabled>true</enabled></releases>这个标签的作用是设定是否允许下载
release版本的载构件, 同样snapshots标签可以设定是否允许下载snapshot版本的构件.
通常,我们不建议下载snapshot版本的构件,因为它是不稳定的版本, 除非你有特殊的需
求.
构件部署
有些时候我们需要部署构件到Nexus的3rd party, 比如我们在中央仓库找不到我们需要的构件, 我们可以通过Nexus的UI来上传构件:
点击左边菜单栏的 Repositories, 然后点击右边界面的3rd party, 选择界面下方的Artifact Upload, 这个时候出现以下界面:
上传构件需要两个步骤,一个是定义文件的上传,再就是构件的实体文件.
第一部分定义文件可以是POM文件, 这也是比较推荐的方式, 如果没有pom文件,可以
选择以参数的形式输入.
第二部分是上传构件的实体文件,这里简单说一下Classifier和Extension, 这两个都是选
填相, Classifier用来区别同功能的构件用于不同的场景, 比如这个构件是分别针对JDK14
和JDK15做了2个功能一样的Jar, 这个时候你就需要指定这个构件的Classifier为JDK14
还是JDK15. Extension是指扩展名,如果不提供,那么会自动取这个构件的Packaging Type
作为扩展名, 比如 ear, jar, war 等等. (Packaging Type是在第一步中通过pom文件或者手
工输入得到的)
刚才说了3rd party的部署, 关于releases 和 snapshots的UI部署也是一样的操作过程.
我们之前也讲过, 这里的releases和snapshots是用来部署我们自己的项目构件的, 通过
UI部署是可以,但是不是最高效的, 我们可以通过配置Maven来自动部署我们的项目构
件,这也是我们建立自己的仓库的一个非常重要的原因, 下面就让我们看看如何配置:
首先需要在POM文件中加入以下代码:
<project>
...
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://127.0.0.1:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://127.0.0.1:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
...
</project>
这里配置,让Maven知道当我要发布release版本或者snapshot版本是需要发布到哪个地址.
然后我们需要在setting.xml里面配置一下Nexus的帐号和密码:
<settings>
...
<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
...
</settings>
到此为止, 我们就可以通过命令mvn deploy或者通过IDE的可视化界面点击deploy来发布我们项目到本地仓库了. 通过这种方式我们可以很方便的进行模块间的依赖开发。
B. java学习路线是怎样的
第一阶段,Java SE基础:
Java环境搭建、Java流程控制语句-for循环、switch选择判断、循环嵌套、数组拷贝、多维数组、final关键字、构造函数的调用、类的访问权限和路径、面向对象高级特性、Java异常处理、Set,Map,List接口及接口实现类、Java线程、同步阻塞、JavaIO流、文件的操作,复制,读写,删除等。
第二阶段,JavaWeb:
Mysql安装、管理、创建数据库、MySQLUPDATE
查询、Mysql高级操作、JDBC、JDBC数据库连接操作,JDBC动态Sql处理、Servlet3.0 网页重定向、Servlet3.0
新增的注解支持、AJAX、responseText属性详解等。
第三阶段,Java高级框架-SSH:
Struts2异常处理、Struts2+Log4j集成、Struts2和JSON实例、Hibernate5、Hibernate集合映射、Hibernate组件映射、Spring4.0、SpringAOP+
AspectJ框架、Spring 与其它Web框架集成、Spring Hibernate支持等。
第四阶段,Java高级框架-SSM:
SpringMVC、Spring MVC生成JSON数据、MyBatis、MyBatis 环境配置及入门、Mybatis set标签、Mybatis trim标签、Shiro、Shiro快速入门教程、Shiro Web应用等。
第五阶段,SpringBoot+VUE全栈框架:
SpringBoot、全局异常处理、过滤器监听器、EHCache缓存、SpringBoot Quartz定时任务、Vue、Vue.js 安装、模板语法、计算属性、事件处理器、Vue.js 自定义指令、Vue.js 路由等
第六阶段,特色课程:
ActiveM环境搭建、生产者和消费者、消息持久化操作、RSA数字加密算法、Codebar条形码生成器、zxing二维码生成器、HighCharts统计图、Echarts统计图、网络播放器ckplayer、嵌入式网络播放器,可以浏览器和移动端随意使用
第七阶段,互联网框架的高级应用1:
分布式服务框架的理解,Dubbo架构设计详解及其核心要点,框架运行原理分析、SpringData数据访问、Lucene搜索引擎、Lucene的全文搜索服务器介绍、索引建立方式、Solr海量数据搜索引擎、Socket网络通信、实现RMI远程对象通讯、使用JMS消息服务、Kafka分布式消息系统、WebService与RestfulWS等
第八阶段,互联网框架的高级应用2:
Spring Security安全框架、实现Web应用安全控制、缓存应用与EhCache框架、OSCache与JBossCache框架、MyBatis与Hibernate缓存机制、NoSQL应用与SQL调优、MongoDB
NoSQL数据库、Redis内存数据库、实现RedisSession共享、SQL语句的优化、实现数据库读写分离、WEB应用集群及性能优化、Maven项目管理工具、Web服务器负载均衡、实现Nginx与Tomcat集群、使用LoadRunner测试工具、性能优化之内存调优、代码优化与重构的方法等。
对java有兴趣的小伙伴们,不妨先从java入门开始!B站上有很多的java教学视频,从基础到高级的都有,还挺不错的,知识点讲的很细致,还有完整版的学习路线图。也可以自己去看看,下载学习试试。
C. java学习一般步骤有哪些
首先是Java技能的核心和基础JavaSE,这一阶段会接触到Java基础语法、面向对象编程思维、Java常用API、多线程并发编程、数据结构/集合结构、IO/网络编程/反射/设计模式。这一阶段往往也是最重要的,后边许多知识和结构的使用都是根据这一基础来的。学完这一部分,做一些简略的桌面使用程序设计没有问题。
接下来Java的进阶课程中,要用到的便是数据库(MySQL)和JDBC。在之后,要学习到的是JavaWeb开发技能。学完可以具有开发个人网站和企业网站的知识技能。
最后,接下来便是Java课程最重要的部分把学到的Java技术知识应用到实战项目了,一般实战项目会占整个课程的少半时间,从浅入深,会接触到大小型企业内各种真实实战项目。 比方内容办理体系(CMS)、智能商贸体系、盛行结构使用、B2C/商城项目等。完结这些项目,你对市面上大多数web使用开发、办理体系开发、运用前沿技能开发都得心应手。
java学习路线图:
D. 如何在android手机中安装一个web服务器啊。。。急求
正式开始
下载并安装Androphp、Feel FTP和File Zilla
安装完成后打开AndroPHP,界面如下:
备注:此处为手机内网IP,意味着你只能用内网设备访问,在以后的博文中会告诉大家如何进行端口映射,从而实现外网也可访问
看到上图两个地址后,其实可以直接点击,使用手机浏览器访问的界面如下:
备注:
图片1中大家可能看不到wordpress文件夹,别急下一步教你上传。
phpMyAdmin的默认用户名是root或者是你当前手机的ip地址,密码为空(这信息可以在phpinfo.php中查看)
接下来,就是教大家如何上传文件到手机,当然前提是你已经在Wordpress上下载好了wordpress安装包(下载很简单的,自己去看看吧)或者你自己已经写好了.PHP网页,也可以
两种方法:
1
1
在手机文件管理里,找到根目录下的WWW文件夹,然后用数据线是上传文件到这个文件夹就行了,相当于服务器的根目录
利用Feel FTP(手机端)和File Zilla(电脑端)进行文件传输。这种方法更像是将手机当成服务器啊(本人拙见,其实只要效果一样就行,嘿嘿)
步骤一、打开Feel FTP,点击下方中间按钮,绿色变成红色即为打开,上方也显示出你是否打开了(ps:你可以在设置中关闭无连接是自动退出,不然等会就要打开一次,太麻烦)
步骤二、电脑上打开File Zilla
在主机名处输入Feel FTP上显示的地址。例如我的是:
ftp://192.168.1.121
在端口处填写 :2121,剩下可以都不填写(因为Feel FTPmore不开启用户名和密码),点击快速连接
将你的wordpress文件夹从本地上传到手机根目录/www(从窗口1拖动到窗口2,即可)
至此两种文件上传方法均讲述完毕。
5.利用phpMyAdmin创建数据库,修改wordpress中的wp-config-sample.php文件,之后的步骤和正常安装wordpress相同,可参考我之后要写的wordpress安装教程,此处介绍到此为止
成果演示
接下来,放几张演示图
手机上的wordpress展示:
或者自己编写的.php文件(此处使用的是官方文档演示)
E. 学习java需要什么基础
学java需要数据结构基础。要学好一门编程语言,数据结构是必不可少的知识,搞不清楚算法复杂度的程序员也就只能做做填空式的增删改查了。
一、掌握静态方法和属性
静态方法和属性用于描述某一类对象群体的特征,而不是单个对象的特征。Java中大量应用了静态方法和属性,这是一个通常的技巧。但是这种技巧在很多语言中不被频繁地使用。理解静态方法和属性对于理解类与对象的关系是十分有帮助的,在大量的Java规范中,静态方法和属性被频繁使用。
由于很多语言没有这么强大的集合框架体系,很多初学者不知所措,更不知道拿来做什么用,因此应该引起足够的重视。