嘟嘟老窝

上帝给了我一双黑色的眼睛,我却用它来翻白眼......

导航

解决Eclipse3.4的No repository found错误

Eclipse3.4虽然形同鸡肋,但还是将就着用,不过最近替换成eclipse-jee-ganymede-SR1-RC2-win32后Update就在没起作用,除非是本地Archive或Local目录,只要是http和https打头的都无法正常安装更新,显示同一个错误:
No repository found at
https://……
刚开始我还以为是网络原因,又查GFW又关卡巴,都没解决,网上查了一下,好家伙,好多人都有同样问题
去Eclipse的BUG中心查了一下未果。
没办法就在Eclipse的设置菜单中寻找,无意中将General->Network Connections的连接方式从默认的改为第一个选项“System proxy configuration (if available)”后迎刃而解。
最后进入update后别忘了重新刷新下,或者重启Eclipse。

注:全文完

用Nexus做Maven私服全攻略

Nexus简介

Nexus是Sonatype推出的强大Maven仓库管理器产品,要比以前TSS上介绍的Artifactory要好使用的多,也是一个拆箱即用的Java App,内嵌Jetty容器和Java Wrapper做Windows服务,安装简单到解压然后双击install即可。更详细的帮助手册请上官方网站查看,这里推荐一个翻译中的书籍——《Maven权威指南》(在线阅读英文版中文版),一本全面介绍Maven的书,其中也有介绍Nexus的章节,猛击这。Nexus的优点这里得啰嗦一下(摘抄自Maven中文Blog):

  • 代理远程仓库。配置Nexus代理中央仓库,其它任何公开的Maven仓库,将你组织内部的Maven配置指向Nexus,这样所有构件都将从Nexus下载,如果Nexus没有你要的构件,它会自动先去外部仓库下载到本地,仅一次。
  • 本地宿主仓库。Nexus可以在服务器上建立本地的宿主仓库,你可以往这个仓库里提交任意的Maven规范构件,包括不能从公开仓库下载到的构件,或者你组织内部产生的构件。
  • 仓库组。有了仓库组,你就能将很多仓库聚合起来,对外公开一个统一的接口提供构件服务。
  • 构件搜索。Nexus能下载远程的仓库索引,并在本地构件自己的仓库索引,有了该索引,你就能很快速方便的搜索任何你感兴趣的构件。
  • 事情RSS源。Nexus服务器上发生的几乎任何事情,你都能用RSS监视,方便管理。
  • Release和Snapshots区分。配置Nexus提供Release构件服务或者Snapshots服务,能更清晰的管理构件。
  • 路由。Nexus的路由能够管理为特定的请求提供特定的仓库。加入你在一个组中配置了很多仓库,一条路由能够极大提高某些特定请求的响应速度。
  • 上传构件。使用Nexus你能很方便的在web界面上上传一些特殊的构件至仓库。
  • 高用户体验的UI。使用AJAX和REST技术开发的Nexus,在界面上为提供了很舒适的用户体验。

初始化

nexus

默认安装后的访问路径为http://localhost:8081/nexus/, 管理员登录为admin/admin123,UI是用Ext搭建的,熟悉Ext的人根本没有操作障碍,登录后最重要的事情就是打开远程索引下载,操作为选 择菜单Administrator->Repositories,然后在右边打开的列表中依次选择type字段为proxy的记录,在下方的编辑区 中修改"Download Remote Indexes"值为true,再从这三个仓库上点右键选择"Re-Index",这一步别忘,我当时搭建的时候就忘了Re-Index,结果等了一天还 没任何索引文件。Re-Index后,Nexus会从后台去官方地址下载仓库索引文件,大概20M大小,根据网速快慢下载相应时间后选择仓库时会以树形目 录的方式显示仓库内容。

角色权限

Nexus的操作权限完全仿照RBAC角色权限模型,默认三个用户:admin、anonymous、deployment,对应的是管理用户、匿 名访问用户和部署用户,管理用户用于仓库管理和系统配置,匿名用户用于仓库查询和仓库下载,部署用户用于私人jar包的上传。在这里,我对 deployment的默认角色Nexus Deployment Role做了自定义修改,加入了"All M2 Repositories"的create和update权限,并且加入了"UI:Base UI Privaties"权限,用意稍后解释。

Nexus的使用

  1. 从浏览器里打开访问地址后,通过"Artifact Search"菜单可以进行构件搜索。
  2. 对于一些特殊的构件,比如sqlserver2005的jdbc驱动,你可以通过管理员登录然后从第三方上传构件
  3. 提供仓库组的概念,对于远程代理仓库和本地宿主仓库,还有第三方仓库,全部创建为一个public-group,然后通过访问组就可以访问所有的仓库构件了,这就是所谓的分散存储,统一访问
  4. 和Maven结合也很简单,首先是要配置Maven,打开$user$/.m2/下的settings.xml(没有的话创建一个),然后拷贝以下内容到文件中:
    settings.xml
    <settings>
    <proxies>
    <proxy>
    <id>normal</id>
    <active>true</active>
    <protocol>http</protocol>
    <username>deployment</username>
    <password>deploy</password>
    <host>localhost:8081/nexus</host>
    <port>80</port>
    <nonProxyHosts>localhost:8081/nexus</nonProxyHosts>
    </proxy>
    </proxies>

    <mirrors>
    <mirror>
    <!--This is used to direct the public snapshots repo in the
    profile below over to a different nexus group -->
    <id>nexus-public-snapshots</id>
    <mirrorOf>public-snapshots</mirrorOf>
    <url>http://localhost:8081/nexus/content/groups/public-snapshots</url>
    </mirror>
    <mirror>
    <!--This sends everything else to /public -->
    <id>nexus</id>
    <mirrorOf>*</mirrorOf>
    <url>http://localhost:8081/nexus/content/groups/public</url>
    </mirror>
    </mirrors>

    <profiles>
    <profile>
    <id>development</id>
    <repositories>
    <repository>
    <id>central</id>
    <url>http://central</url>
    <releases><enabled>true</enabled></releases>
    <snapshots><enabled>true</enabled></snapshots>
    </repository>
    </repositories>
    <pluginRepositories>
    <pluginRepository>
    <id>central</id>
    <url>http://central</url>
    <releases><enabled>true</enabled></releases>
    <snapshots><enabled>true</enabled></snapshots>
    </pluginRepository>
    </pluginRepositories>
    </profile>
    <profile>
    <!--this profile will allow snapshots to be searched when activated-->
    <id>public-snapshots</id>
    <repositories>
    <repository>
    <id>public-snapshots</id>
    <url>http://public-snapshots</url>
    <releases><enabled>false</enabled></releases>
    <snapshots><enabled>true</enabled></snapshots>
    </repository>
    </repositories>
    <pluginRepositories>
    <pluginRepository>
    <id>public-snapshots</id>
    <url>http://public-snapshots</url>
    <releases><enabled>false</enabled></releases>
    <snapshots><enabled>true</enabled></snapshots>
    </pluginRepository>
    </pluginRepositories>
    </profile>
    </profiles>
    <activeProfiles>
    <activeProfile>development</activeProfile>
    </activeProfiles>
    </settings>

    然后,在从你的工程里的pom.xml中加入以下内容:

    pom.xml
    <distributionManagement>
    <repository>
    <id>repo</id>
    <name>public</name>
    <url>http://localhost:8081/nexus/content/repositories/releases</url>
    </repository>
    <snapshotRepository>
    <id>Snapshots</id>
    <name>Snapshots</name>
    <url>http://localhost:8081/nexus/content/repositories/snapshots</url>
    </snapshotRepository>
    </distributionManagement>

    解释一下:
    settings.xml中的proxies/proxy节点配置的是部署服务器访问属性,deployment/deploy对应的是部署用户名和密 码;mirrors/mirror配置的是maven访问仓库的地址,这里使用的是Nexus提供的群组概念,将多个仓库组成一个public- group的方式进行访问;profiles/profile则主要用来描述仓库部署的访问配置。

和apache结合

和apache结合挂域名访问也很简单,官方网站上有介绍,我这里给出一种最简单的方式:

  1. 启用mod_proxy.so、mod_proxy_ajp.so、mod_proxy_connect.so三个module
  2. 配置一下数据:
    ProxyRequests Off 
    ProxyPreserveHost On
  3. 虚拟主机的配置类似下面
    <VirtualHost *:80>
    ServerName repo.duduwolf.com
    ServerAdmin duduwolf@duduwolf.com
    ProxyPass / http://localhost:8081/nexus
    ProxyPassReverse / http://localhost:8081/nexus
    ErrorLog logs/nexus-error.log
    CustomLog logs/nexus-access.log common
    </VirtualHost>

我自己搭建的仓库私服,欢迎使用

访问地址为:http://repo.duduwolf.com,目前我先开放匿名访问,大家可以通过这个进行构件查询,并配合Maven进行远程仓库代理下载,暂不提供第三方上传部署。

其他类似产品

  • 著名的Artifactory,这是TSS推荐过的,也是最早的仓库管理软件
  • Apache的Apache Archiva,apache出品的应该不错,不过没用过,我觉得自此有了Nexus,你完全没必要在寻找其他仓库管理软件了。

注:全文完

[转]Java 2007:新年展望

惭愧,将近三个月没有写blog了。难得还有那么多朋友在订阅我的feed。年也过完了,该振作起精神,学点、写点、思考点、积累点东西了。擦擦灰尘,清理下杂草,重新开始我的2007blog之旅,农历的年之初,以这篇转载文章作开篇吧,也以此文隐射这一年我的主要学习和工作方向。(原文地址)

2007 年将载入史册,在这一...

发现JR上的一个大BUG

中午闲来无事,在JR上瞎逛,发现了[调查]栏目的一个bug。

每个页面提交调查表单时是根据表单中的一个叫做thread的hidden来决定帖子ID的,我用maxthon的javascript调试台尝试修改了thread的value后重新提交,页面跳转到error page,刷新了一下可用分,居然增加了5分。这说明JR的后台是将提交调查和增加可用分的操作分开执行的,正常情况下应该先判断调查提交正确与否后再能做增加可用分的操作,看来JR犯了一个错误,当提交后应该先判断thread的业务逻辑有效性后在进行下一步的操作,因为没有判断,导致后面的操作抛出异常。

我把代码修饰了一下,现在可以狂点鼠标就能增加可用分了

var e = document.forms[0];
e.target='_blank';
var s = document.getElementById('thread').value;
s = parseInt(s) + 1;
e.innerHTML = '<input type="hidden" id="thread" name="thread" value="" /><input type="radio" name="option" value="15" checked /><p><input type="submit" name="voteSubmit" id="voteSubmit" value="投票">';
document.getElementById('thread').value=s;
document.getElementById('voteSubmit').click();

注:全文完

WebWork加入到Struts社区,共同推下一版Struts——Struts Action Framework 2.0

从WebWork的首页看见了这则消息,大概意思是说WebWork加入到Struts社区,一起推下一个版本的Struts,新版Struts中包含了WebWork,名字也改叫作“Struts Action Framework 2.0”。当然,现有的WebWork版本和bug还会继续维护,但是不会再推出独立的下一版本,新的版本统统会融入Struts中。

这是个好消息,一直认为struts的框架模式已经开始落后,将会慢慢的被其他框架代替,如咄咄逼人的JSF或者是Tapestry,现在看来担心好像多余了,struts作为Apache组织的一个重要项目,不会轻易让人夺走Web Application Framework for Java的第一把交椅,从WebWork社区中似乎没有什么怨言,也许这也是很多人希望看到的结果。

至于WebWork为什么找Struts进行整合,主要是看上了Struts社区的人气旺旺,当然Struts可能也很欣赏WebWork的技术吧。

原文链接:http://blogs.opensymphony.com/webwork/2005/11/webwork_joining_struts.html

一封mail:[PROPOSAL] Merger with WebWork (只看了大概,可能就是这封信撮合了两家)

希望这样的整合会越来越多,整合带给用户的只有好处没有坏处,双手拥护!

注:全文完

Eclipse+Tomcat+MyEclipse配置手记

2005-10-6更新
今天又对这套插件组合进行重新安装和测试,最后才发现,MyEclipse在自带的App Server中有Tomcat5,如果这时再安装sysdeo的那个Tomcat插件,就会造成冲突,现在我把MyEclipse中的Tomcat5禁用,sysdeo的那个就一切正常了,至于上一次启动出现的Log4j也不是什么大错误,那只是自己在WebApp目录中的一个工程有问题,删除那个工程目录后就再没出现Log4j的错误。
早上上班来开始配置Eclipse+Tomcat+MyEclipse……

插件安装没问题,安装sysdeo的那个Tomcat有点讨厌,安装后得手动配置透视图

MyEclipse使用的是3.83,安装没问题

一且配置妥当,从Eclipse中启动Tomcat,提示Log4j没有初始化

开始寻找Log4j的初始化方法,google……bbs……

热心的、和我一样背的朋友很多,给出了多种答案,我一一尝试……

手动启动Tomcat一起正常,Eclipse中启动Log4j的错误如幽灵般始终阴魂不散……

Tomcat插件、Eclipse自带的、MyEclipse中的AppServer都有配置Tomcat的地方,有点晕乎……

开始烦躁,瞎猫碰耗子般乱改一通……

MyEclipse先是阵亡,无法给Project加入Deployments,提示Tomcat JDK Name有错误……

又是一动乱改,Tomcat也宣告罢工,手动启动也显示Log4j没初始化……

一起尝试都宣告失败后,我准备放弃了,看了下时间,12:30分……

郁闷无聊中给老婆发短信:今天是抗日战争胜利60周年,祝你今天心情愉快。

很快收到了老婆的回复:你不请我吃饭吗?

…………
……

通过一上午的奋斗,让我明白了两件事情:

1、不懂就不要乱改

2、有机会写一本入门级的《JAVA配置大全》的书一定好卖

下午准备重装Eclipse、Tomcat、MyEclipse,环境变量也重新配,我就不信了……

注:全文完

Eclipse插件系列——JSEclipse

插件名称:JSEclipse
插件分类:Editor
插件版本:1.1.0
插件介绍:JSEclipse是个Eclipse下的免费Javascript脚本编辑器,最大的特点就是对js的自动完成功能非常完美,支持普通DOM对象的点取,如document对象,screen对象,这些对象都是通过外置的xml文件配置进行工作的,所以用户完全可以根据自己需要配置更详细的DOM对象的xml文件。除过基本的DOM对象支持外,JSEclipse对js文件内的Class和Function也能完美地支持自动完成,看我的截图。这个插件还支持JavaDoc的编辑时自动完成,不过我一般都在用MyEclipse套件,所以这个功能对我到意义不大。除过自动完成功能外,该插件还支持JS的语法高亮,错误和警告提示等等,我已经把js文件默认打开方式选择为JSEclipse了,MyEclipse那个太慢了,唯一遗憾的就是没有调试功能,希望下一个版本把javascript脚本调试加入进来,这样才算是一个真正意义上的js开发插件。
该插件支持Eclipse 3.X,不过得需要JRE1.5。如果你在安装此插件前还安装了WTP、MyEclipse等插件,请更改.js文件的默认打开方式为JSEclipse才能启用这个插件。
点选自定义类的属性和方法

注:全文完

Eclipse插件系列——ResourceBundle

插件名称:ResourceBundle Editor
插件分类:Editor
插件版本:Version 0.7.0
插件主页:http://resourcebundleeditor.com
插件介绍:ResourceBundle Editor插件用来编辑Properties资源文件,可以在一个界面里一次编辑相关的所有properties 文件的Key和Value。
  • 支持键(key)的排序
  • 可以检查出文件中的错误、定义重复和值相似
  • 支持非ASCII双字节字符和Unicode字符之间的相互转换
  • 可以为Key重新排列出类似于树型的层次,美化文件内容
  • 支持重命名或删除一组Keys
  • 支持向导式的建立资源文件

注:全文完

Eclipse插件系列——FindBugs

插件名称:FindBugs
插件分类:Source Code Analyzer
插件版本:Version 0.9.2-rc1 for Eclipse 3.*
插件介绍:FindBugs是个专门用来发现Java代码中的Bug的Eclipse小插件,与Eclipse无缝结合,可以实现敲入代码、保存文件、编译时即时反馈给用户Bug信息,比Eclipse自带的Java Bug管理功能要强。FindBugs一共有三个版本,除过Eclipse插件板本外,还提供一个独立版本的Java程序(基于SWing)和一个Ant Task版本(详细请看:http://www.tobject.de/index.php?id=9)。

注:全文完

Eclipse插件系列——yWorks Ant Explorer

插件名称:yWorks Ant Explorer
插件分类:Editor
插件版本:1.0.1
插件介绍:yWorks是一个Ant的脚本管理工具插件,强大直观的查看Ant的Script是这个插件的最大亮点。
yWorks Ant Explorer可以用图形的方式形象的表现出你的Ant部署脚本,包括对象间的从属关系等,并且支持直接运行测试ant脚本。yWorks还有一个单机版(需Java WebStart),安装后无需其他软件就可以在本地执行和分析Ant脚本啦。

注:全文完

分页:[<<] [1] [2] [3] [>>]

日历

<< 2009·9 >>

Sun

Mon

Tue

Wen

Thu

Fri

Sat

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

Search

Google

Tags

Powered By Z-Blog 1.4 SP1 Build 50824 - modify by duduwolf

Copyright 1999-2005 duduwolf.com Some Rights Reserved.