Jun23

【原创】完美解决IntelliJ IDEA无法更新maven索引的问题

Author: leeon  Click: 150   Comments: 0 Category: java  Tag: intellij idea,maven,pom,索引
楼主最近研究spring boot要用到maven,但是苦于intellij idea的maven依赖更新始终无法正常更新。老是提示:

java.lang.RuntimeException\: java.io.FileNotFoundException\: Resource nexus-maven-repository-index.properties does not exist

网上的解决方法通过代理科学上网的方式来做 https://blog.csdn.net/ziven2012/article/details/78132264,但是我这边使用xxnet无法正常请求。于是我想到通过搭建本地nexus仓库的方式来使intellij更新索引。

具体方式如下:

1. 不使用intellij 自带的maven,手动自己本地部署一个maven最新版本,然后配置maven的路径和setting.xml文件路径。如下图所示:

2. 请使用nexus oss 2.XX的版本,千万别用3.X的版本。

3. 手动下载索引的相关文件。假设nexux部署后sonatype目录在/work/opt/sonatype-work/ ,那么我们将索引文件放入中央仓库的.index目录下:/work/opt/sonatype-work/nexus/storage/central/.index
此目录必须包含如下索引文件:

4. 测试你的nexus服务器是否能访问此索引地址,比如我的nexus中央仓库路径为:http://192.168.1.8:8081/nexus/content/repositories/central/
那么你的索引文件路径则应该为:
http://192.168.1.8:8081/nexus/content/repositories/central/.index/nexus-maven-repository-index.gz

5. 接着最后一步很重要,要让intellij idea识别mirror镜像配置,告诉maven应该去哪个镜像下载更新索引文件。在第一步中我设定maven的配置文件在E:\apache-maven-3.5.3\conf\settings.xml ,因此我们要修改这个xml中mirror相关项。在mirrors的区域添加如下信息:
 
      central
      central maven
      http://192.168.1.8:8081/nexus/content/repositories/central/
      central
   

注意箭头处一定要是central类型镜像仓库。

6. 最后完美解决,其他网上的教程都不靠谱,这个更新起来速度倍儿快,而且还很稳定。其实做个做法你也可以通过搭建一个nginx来做,我这样做的目的是让intellij 自动集成本地的nexus仓库

Aug23

【原创】MyBatis Generator使用小记

Author: leeon  Click: 13145   Comments: 1 Category: java  Tag: mybatis,generator

最近在新的项目中使用Mybatis提供的generator工具来自动生成代码,为了提高效率,我是用mybatis提供的eclipse插件来生成代码,在使用过程中遇到一些问题,在此记录下来:

1. 默认mybatis generator会在生成普通代码同时附加example的示例代码,通常我们不需要这些东西,生成出来清理也麻烦,可以在generator的xml配置文件的table配置项中添加

enableCountByExample="false"

enableUpdateByExample="false" enableDeleteByExample="false"

enableSelectByExample="false" selectByExampleQueryId="false"

来关闭example代码的输出。

2. 工具在eclipse中使用有可能会提示jdbc找不到,这时候在配置文件中添加classPathEntry配置项即可,将mysql的jdbc包引用进来,类似如下配置:

[code="xml"]
<classPathEntry location="C:\Users\leo\.m2\repository\mysql\mysql-connector-java\5.1.26\mysql-connector-java-5.1.26.jar"/>
[/code]

3. 配置文件中commentGenerator配置项最好不要设置为不生成注释,因为这样带来的问题是在自动生成的代码上不会存在@mbggenerated 这样的标记,这个标记是用来标注这些代码是代码生成器生成的,如果关闭了注释,我们在多次使用mybatis generator重新生成代码时会导致在已有生成的文件上追加生成重复的内容,导致代码错误,故我建议如果你只生成一次代码,以后再不用工具生成可以关闭注释,如果会重复生成就要把注释开关打开。我的配置参数是关闭时间注释:

[code="xml"]
<commentGenerator>
<property name="suppressDate" value="true"/>
</commentGenerator>
[/code]

4 我们可以在生成好的代码上继续添加我们要实现的功能代码,但是在用中文注释代码的时候,我们再用generator重新生成代码,我们已有代码是不会被覆盖和修改的,但是中文注释有可能变成乱码,这是因为我们在工具配置文件上没有全局指定文件编码,只要我们在context的配置区域里面加入如下配置即可:

[code="xml"]
<property name="javaFileEncoding" value="UTF-8"/>
[/code]

5. mybatis generator生成的代码注释比较丑陋,同时也不支持在model代码中自动添加数据库字段注释,我们可以通过修改插件源代码来实现。从官网下载插件

https://github.com/mybatis/generator/tree/master/core/mybatis-generator-core

核心代码,修改/mybatis-generator-core/src/main/java/org/mybatis/generator/internal/DefaultCommentGenerator.java

文件,其中addFieldComment 方法的参数introspectedColumn即包含了数据库字段的相关数据,调用的方法是getRemarks ,怎么修改我就不说了,你懂的。



Jun21

【原创】在Spring3中加入veloctiy模板引擎的注意事项

Author: leeon  Click: 3442   Comments: 0 Category: java  Tag: java,spring3,velocity

今天在spring3项目中学习配置velocity时遇到一个很奇怪的问题,通常eclipse的ide在编写xml中都能通过智能提示来提示一个bean类的属性,但是不管我怎么按照网上的说法这样写:

 

智能提示给与的提示只有两个属性:velocityEngine 和servletContext ,进入到org.springframework.web.servlet.view.velocity.VelocityConfigurer 这个类的源码查看,发现其是继承于父类VelocityEngineFactory,然后用eclipse跳转到的方式试图进入VelocityEngineFactory 父类查看,发现无法跳过去,这下问题就清楚了,依赖的spring3包不完整,搜索发现stackoveflow上有人回答了类似问题:http://stackoverflow.com/questions/19752563/using-apache-velocity-with-spring-framework-3-2-4

果断在maven中加入了spring-context-support的依赖配置即可:

org.springframework

spring-context-support

3.2.4.RELEASE


May14

【原创】ActiveMQ连接池在Spring配置中的注意事项

Author: leeon  Click: 5177   Comments: 0 Category: java  Tag: spring3,activemq,pool

今天在spring3中集成配置activemq时发现使用PooledConnectionFactory来编写bean怎么都无法启动,提示创建bean失败(org.springframework.beans.factory.BeanCreationExcept)

我所使用的版本是activemq-pool 5.8版,发现老外也有遇到同样的问题,说有可能是common-dbcp引用的版本不对造成的。

http://techempowers.wordpress.com/2013/09/24/activemq-beancreationexception-pooledconnectionfactory-malformedparameterizedtypeexception/

https://issues.apache.org/jira/browse/AMQ-4189

查看我的工程中没有引用到common-dbcp的包,反而common-pool的包有两个,一个1.5.5版本一个1.6版本,于是将1.5.5版本的jar引用在工程中去掉然后再测试发现bean可以创建成功了。跟踪common-pool的依赖关系发现是jedis的jar包关联有用导致不同的api包引用了不同版本的common-pool包所致,然而active-pool的包必须依赖1.6版本的才能启动。


总结: 只要按照规则编写好bean配置,一定要先检查依赖的包是否符合版本要求,同时检查是否有同一个模块包不同版本的引用

分类

标签

归档

最新评论

默一在09:04:53评论了
Berkeley DB 由浅入深【转自架构师杨建】
Memory在14:09:22评论了
【原创】最佳PHP框架选择(phalcon,yaf,laravel,thinkphp,yii)
leo在17:57:04评论了
shell中使用while循环ssh的注意事项
呵呵哒啦在15:06:33评论了
【原创】最佳PHP框架选择(phalcon,yaf,laravel,thinkphp,yii)
jayden在23:39:32评论了
shell中使用while循环ssh的注意事项

我看过的书

链接

其他

访问本站种子 本站平均热度:6650 c° 本站链接数:27 个 本站标签数:452 个 本站被评论次数:92 次