对于正在工作的项目,我们正在考虑使用Eclipse的Maven插件来自动化我们的构建.现在这个程序远比它应该复杂得多,我们希望Maven能够简化一键构建.
我的问题是,是否有使用Maven插件将现有Eclipse Java项目转换为Maven项目的向导或自动导入程序?或者我应该创建一个新的Maven项目并手动复制所有源文件,库等.
我有这个枚举
public enum Reos {
VALUE1("A"),VALUE2("B");
private String text;
Reos(String text){this.text = text;}
public String getText(){return this.text;}
public static Reos fromText(String text){
for(Reos r : Reos.values()){
if(r.getText().equals(text)){
return r;
}
}
throw new IllegalArgumentException();
}
}
Run Code Online (Sandbox Code Playgroud)
还有一个名为Review的类,这个类包含enum Reos类型的属性.
public class Review implements Serializable{
private Integer id;
private Reos reos;
public Integer getId() {return id;}
public void setId(Integer id) {this.id = id;}
public Reos getReos() {return reos;}
public void setReos(Reos reos) {
this.reos = reos;
}
}
Run Code Online (Sandbox Code Playgroud)
最后,我有一个控制器,用 …
在Spring中,如果我想要一组对象用于生产,另一组用于本地开发/测试.我可以使用@Profile注释来指定不同的类,并在启动应用程序时通过提供系统属性在它们之间切换.
在Guice中有这样的东西,还是我需要自己手动检查一些属性并在引导我时加载一组不同的模块Injector?
好吧,我在java的有限经验中从未真正使用过断言,并且想知道为什么我在许多网站上阅读过很多关于断言的书籍,同样的警告断言语句不应该用于参数检查公共方法?我想知道这是否与assert语句相对于java中其他语句的执行顺序有关.
我目前无法调试一些依赖本机库的Android代码.特别是一个本地调用似乎容易出现"旋转暂停"错误.它通常表现如下:
threadid=2: spin on suspend #2 threadid=48 (pcf=3)
Run Code Online (Sandbox Code Playgroud)
到目前为止,我还没有确切地确定这里失败了什么,除了在大约10条消息之后,我的应用程序遇到了SIGSTKFLT退出.每次,第一个线程是GC,第二个线程是当前正在执行本机代码的线程.与此消息一起打印的堆栈部分始终在堆栈顶部具有本机方法.
当Dalvik抱怨这件事时究竟发生了什么,我怎样才能开始调试原因以便我能解决它?
编辑:一个有趣的皱纹 - 在本机开发人员做了一些更改后,我现在也看到以下错误:
PopFrame missed the break
VM aborting
Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code=1)
Run Code Online (Sandbox Code Playgroud)
对我来说,线程转储在堆栈顶部显示我的本机方法也是非常奇怪的,但是线程状态RUNNABLE不是NATIVE- 这怎么可能呢?
我觉得这应该由Activity类中的文档回答,但我仍然不肯定 - 何时更新Activity(或片段)的UI实际上是否安全?仅在恢复活动时,或者在启动和停止之间的任何点?
例如,Activity文档说明:
活动的可见生命周期发生在对onStart()的调用之间,直到对onStop()的相应调用.在此期间,用户可以在屏幕上看到活动,尽管它可能不在前台并与用户交互.在这两种方法之间,您可以维护向用户显示活动所需的资源.例如,您可以在onStart()中注册BroadcastReceiver以监视影响UI的更改,并在用户不再看到您正在显示的内容时在onStop()中取消注册.onStart()和onStop()方法可以多次调用,因为活动对用户可见并隐藏.
从那个阅读中,我会假设即使显示前景对话框,我也可以安全地更新它背后的UI元素.
编辑
澄清一下:我问的原因是在触发AsyncTask并尝试更新onPostExecute方法中的UI时被错误所困.即使它在UI线程上运行,用户已经远离该视图导航,我将收到异常.我现在正在开始一个新项目,并尝试围绕更好的AsyncTask习语建立一些指导方针.
目前,我在Linux机器上使用NSIS为程序生成安装程序.NSIS二进制文件已经为Ubuntu编译,使用.nsi脚本没有任何困难.但是,生成的setup.exe文件是未签名的.对于通过大多数常见Web浏览器下载安装程序的用户,以及运行时Windows自身的警告,这会导致可怕的警告.
我们想避免这些警告,除非我遗漏了某些内容,否则需要使用Windows工具对生成的setup.exe文件进行签名.有没有办法在非Windows机器上执行此操作?
不幸的是,每个安装程序都是唯一的(根据客户的请求捆绑不同的文件,并包含唯一的ID),因此我无法在Windows计算机上签署安装程序,然后上传它.
我正在编写一个应用程序,它需要能够处理来自外部源的HTTP请求(在这种情况下,它实际上是来自Second Life的脚本).我开始使用Apache的HTTPComponents,只要Java服务器只需要响应GET请求,它就能很好地工作.现在它需要能够从POST请求的主体接收数据,我没有看到任何方法这样做HTTPComponents.是否有一个高级库可用于此目的?
我确实通过一些谷歌搜索发现Sun软件包中包含一个基本的HTTP服务器.出于本应用程序的目的,可能要求它只在实际的Sun/Oracle JVM实现上运行 - 但这对我来说仍然是代码味道,而且我可能只会这样做,如果唯一的选择是写我的从头开始拥有HTTP服务器库,从套接字等处理.对替代品的任何建议?
我希望能够将我的应用程序使用的端口限制为一些尽可能小的已知集。该应用程序使用 Java RMI 与远程服务器进行通信。注册表在端口 1099 上导出,这是标准端口。然而,用于导出各种远程对象的端口似乎并不总是一致的,尽管它确实在短时间内在多个连接中保持不变。我未受过教育的猜测是在幕后进行了某种服务器套接字缓存,从而导致了这种情况。
我希望能够确保连接始终发生在几个众所周知的端口上,以便安装客户端应用程序的用户必须在他们的防火墙中打开尽可能少的端口。似乎我可以通过将 RMISocketFactory 更改为自定义实现并覆盖该createServerSocket方法以始终使用已知端口来做到这一点。然而,这引发了几个问题:
createRegistry调用绑定了。在Maven,如果我想用声纳分析我的项目,我可以这样做:
mvn sonar:sonar
Run Code Online (Sandbox Code Playgroud)
使用'短'插件名称和目标.
在Gradle中,是否有类似的方式来运行插件,而不在build.gradle脚本中声明它们?
我在windows环境中使用了eclipse多年.本周我得到了一个全新的mac pro,我正在从windows迁移一切.我将整个工作区从win7框复制到了mac.我已经安装了最新的eclpise(eclipse-SDK-4.2.2-macosx),我已经导入了我的项目...我的一个项目中的一个类似乎找不到两个导入......我我拉出我的头发试图弄清楚我需要添加到项目中以使其编译.
两个导入eclipse无法找到:
import sun.awt.windows.WPrinterJob;
import sun.print.Win32PrintJob;
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!!
谢谢.