针对Java的另一个构建工具真的让我感到满意吗?
如果你使用Gradle而不是其他工具,为什么?
与让我们说蚂蚁相比,使用maven的主要好处是什么?它看起来更像是一种烦恼而不是一种有用的工具.我使用maven 2,使用普通的Eclipse Java EE(没有m2eclipse)和tomcat.
maven的支持者相信这一点
Maven可以让您轻松获得包依赖性
Maven强制您拥有标准的目录结构
在我的经验中
弄清楚包依赖关系并不是那么难.无论如何你很少这样做.可能在项目设置期间一次,在升级期间更多.使用maven,你最终会修复不匹配的依赖关系,写得不好的poms以及无论如何都要进行包排除.
缓慢的FIX-COMPILE-DEPLOY-DEBUG循环,可以降低生产率.这是我的主要抱怨.你做了一个改变,你必须等待maven build进入并等待它部署.没有任何热门部署.
或者我只是做错了?请指出正确的方向,我全都耳朵.
我一段时间以来一直在使用STS和Java来开发Web应用程序.该项目配置为使用Maven,Roo和MySQL作为数据库.我经常发现在以下情况下我浪费了很多时间:
没有Roo响应 - 当我修改域对象Java类时,即使项目的Roo shell是打开并加载它也不会响应.我目前对这个问题的攻击是使用roo为类生成一个新的查找程序(以某种方式唤醒Roo).有没有更好的黑客?
很长时间编译 - 我已经自动将构建设置为项目选项.也许我不应该使用它.但最重要的是,有时我需要在域对象中做一个小的更改,然后运行项目,因此我需要再次构建项目并测试它(即使是小的更改).是否有任何属性可以配置为仅重新编译项目的某些部分?
Maven和Pom - 我经常发现Maven存在问题,因为每当我修改pom.xml文件中的依赖关系并保存它而忘记在内部公司网络上时,.m2库将无法正确更新.在那些情况下,我应该在保存之前切换到非内部网络pom.xml.该恼人位的是,一旦我然后更改网络偏好设置并运行"更新所有Maven依赖"命令,它不会做正确.原因是生成了新库的pom文件,但错误消息为内容.问题似乎是Maven生成这些文件,但后来不够聪明,无法识别它们并尝试从Web存储库中再次获取库.要解决此问题,我需要删除文件夹的内容并再次运行该命令.有没有人找到更好的解决方案?
Roo真的值得吗?如果是这样的话?
我发现Roo很适合入门并创建初始数据库和项目配置(例如安全性).但是之后?到目前为止,我一直在使用Roo生成查找程序,但我经常发现,当一个新的查找程序添加到类中时,Roo需要大约10/15分钟更新(我们的项目非常大).我正在考虑开始大部分时间保持Roo shell关闭并手动在.aj文件中添加查找器并.java自己注释文件.之后是否会与Roo发生冲突(例如,一旦我因其他原因打开Roo shell)?
Java和STS
为什么项目需要这么长时间才能编译?我的意思是,我想STS正在检查每个类中是否与最近修改过的文件没有依赖关系,如果有一个更新代码并重新生成一个jar文件.它是否正确?如果我使用PHP或Python怎么办?会发生同样的事情还是会更快?我知道有几个讨论,但是当我列出我遇到的问题时,我想我也会提到这个问题.是使用哪种语言和使用哪种语言的永恒问题.在我们的例子中,我们有一个关系数据库,大量数据,安全约束,需要进行精确计算(需要严格的数据类型).
我正在尝试使用PDFBox Apache生成包含阿拉伯文本的PDF,但该文本会作为分隔的字符生成,因为Apache将给定的阿拉伯字符串解析为一系列常规的“正式” Unicode字符,等效于隔离的阿拉伯字符形式。
这是一个示例:
要在PDF中写入的目标文本“应该在PDF文件中输出”-> ???? ???????
我在PDF文件中得到的内容->
我尝试了一些方法,但这里没有用:
1.将String转换为位流并尝试提取正确的值
2.使用UTF-8 && UTF-16处理String字节序列并从中提取值
有一种方法看起来很有希望获得每个字符的“ Unicode”值,但是它会生成通用的“官方Unicode”,这就是我的意思。
System.out.println( Integer.toHexString( (int)(new String("????").charAt(1))) );
Run Code Online (Sandbox Code Playgroud)
输出为644,但fee0是预期的输出,因为此字符位于中间,那么我应该得到中间的Unicode fee0
所以我想要的是一种生成正确Unicode而不只是官方的方法
以下链接的第一个表中最左侧的列表示常规Unicode
阿拉伯语Unicode表Wikipedia