问题列表 - 第13211页

如何在Eclipse PDE中表达项目间依赖项

我正在寻找处理混合项目类型之间的项目间依赖关系的最佳实践,其中一些项目是eclipse插件/ OSGI包项目(RCP应用程序),而其他项目只是普通的旧Java项目(Web服务模块).很少有eclipse插件依赖于Java项目.

我的问题是,至少就我看来,没有办法在Eclipse PDE环境中干净地表达这种依赖.我可以让插件项目依赖于其他插件项目(通过Import-PackageRequire-Bundle清单头文件),但不是普通的java项目.

我似乎能够让项目从工作空间中的另一个项目声明对jar的依赖,但这些jar文件既不会被导出也不会被启动配置(虽然,java代码编辑看到库很好).

"Java项目"用于构建部署在J2EE容器(目前为JBoss 4.2.2)上的服务,并在某些情况下生成多个jar - 一个用于部署到JBoss耳朵,另一个用于客户端代码(一个用于客户端代码) RCP应用程序).

我们现在"解决"这个问题的方式是我们还有两个外部工具启动器配置 - 一个用于构建所有jar,另一个用于将这些jar复制到插件项目中.这样做(有点),但是"整个构建"和"复制罐子"目标会产生相当大的构建步骤,绕过整个eclipse增量构建功能并通过复制jar而不是仅仅引用项目我将依赖关系信息解耦并请求相当大的工作空间刷新,这就像糖果一样耗尽了开发时间.

我想要的是一个更加"自然"的工作空间设置,它可以管理项目之间的依赖关系并仅在需要时请求增量重建,能够使用RCP应用程序插件中的服务库中的客户端代码并且能够启动RCP应用程序,其中包含所需的所有必需类.

那么我可以吃蛋糕吗?)

注意

需要明确的是,目前依赖管理和模块管理与Eclipse PDE配置有关.

我很清楚[Maven],[Ivy]和[Buckminster]等产品,他们解决了一个完全不同的问题(一旦我解决了工作区配置问题,这些产品实际上可以派上用场实现工作空间和构建产品)

java eclipse workspace rcp dependencies

14
推荐指数
2
解决办法
1万
查看次数

混合了32位和64位共享对象/库

不小心我在x86嵌入式Linux系统上混淆了32Bit和64Bit库文件.我现在正试图找出哪个.so-File可能是错误的.

你知道任何分析.so文件的工具吗?

在我的strace日志中,我发现了对fstat64()的调用.哪个.so文件包含fstat()例程?

谢谢

linux 64-bit shared-libraries

5
推荐指数
1
解决办法
4463
查看次数

是否有从标识列迁移到hilo键的实用方法?

我使用的数据库严重依赖于标识列.但是,由于我们现在已将所有应用程序移至NHibernate,因此我希望使用HiLo,因为似乎建议使用NHibernate.是否有任何策略可以做到这一点,或者需要注意哪些常见问题?

nhibernate identity sequence hilo

15
推荐指数
2
解决办法
2224
查看次数

在Perl中,生成getter和setter而不是硬编码是有缺点的吗?

在下面的示例模块中,通过将匿名子例程添加到符号表来生成getter和setter.在以这种方式创建方法之后,生成的代码在功能上是否等同于(在行为,速度等方面)具有手动编写的getter和setter的模块,或者这种方法是否具有某种固有的责任?(我已经做了一些基本的速度基准测试,到目前为止还没有发现任何差异.)

package Module;    
use strict;
use warnings;

BEGIN {
    my @attr = qw(author title number);
    no strict 'refs';
    for my $a (@attr){
        *{__PACKAGE__ . "::get_$a"} = sub { $_[0]->{$a}         };
        *{__PACKAGE__ . "::set_$a"} = sub { $_[0]->{$a} = $_[1] };
    }
}

sub new {
    my $class = shift;
    bless { @_ }, $class;
}

1;
Run Code Online (Sandbox Code Playgroud)

oop perl module class

7
推荐指数
3
解决办法
1709
查看次数

JavaME - LWUIT图像占用了所有内存

我正在使用LWUIT编写一个MIDlet,图像似乎占用了大量的内存.我使用的所有图像都是PNG,并打包在JAR文件中.我使用标准的Image.createImage(URL)方法加载它们.应用程序有许多表单,每个表单都有一些标签和按钮,但我相当确定只有活动表单保存在内存中(我知道它不是很值得信赖,但Runtime.freeMemory()似乎确认这个).

该应用程序在240x320分辨率下运行良好,但将其移至480x640并使用适当大的UI图像开始导致内存不足错误显示.除其他外,应用程序的功能是下载远程图像.该应用程序似乎工作正常,直到它到达这一点.下载几个PNG并返回主菜单后,遇到内存不足错误.当然,我查看了主菜单使用的内存量,这非常令人震惊.这只是带有图像和四个按钮的两个标签.每个按钮都有三个用于style.setIcon,setPressedIcon和setRolloverIcon的图像.图像的大小范围为15到25KB,但删除了每个按钮使用的三个图像中的两个(总共8个图像),Runtime.freeMemory()显示内存使用量减少了1MB.

我看到它的方式,我要么有很多内存泄漏(我不认为我这样做,但内存泄漏并不是很容易被人追踪),我正在做一些非常错误的图像处理或真的没有问题,我只需缩小规模.

如果有人有任何提供的见解,我将不胜感激.

lwuit midlet java-me

6
推荐指数
1
解决办法
2103
查看次数

在SQL Server中将varchar转换为uniqueidentifier

我无法控制模式的表,包含一个定义为varchar(50)的列,它以'a89b1acd95016ae6b9c8aabb07da2010'格式存储uniqueidentifiers(无连字符)

我想将这些转换为SQL中的uniqueidentifier,以便传递给.Net Guid.但是,以下查询行不适合我:

select cast('a89b1acd95016ae6b9c8aabb07da2010' as uniqueidentifier)
select convert(uniqueidentifier, 'a89b1acd95016ae6b9c8aabb07da2010')
Run Code Online (Sandbox Code Playgroud)

并导致:

Msg 8169, Level 16, State 2, Line 1
Conversion failed when converting from a character string to uniqueidentifier.

使用带连字符的uniqueidentifier的相同查询工作正常,但数据不以该格式存储.

是否有另一种(有效的)方法将这些字符串转换为SQL中的uniqueidentifier. - 我不想在.Net代码中这样做.

sql sql-server-2005 uniqueidentifier

97
推荐指数
4
解决办法
23万
查看次数

addAnnotations问题(内存管理可能?)

我在使用MKMapView/annotations/UINavigationController时遇到了一些问题.基本上,我使用UINavigationController管理我的视图; 我的一个视图包含一个MKMapView,我使用addAnnotations方法在其上添加注释(10到200).

一切都工作正常,除了一件事:如果我在我的UINavigationController上"太快"导航,iphone模拟器崩溃,接收"EXC BAD ACCESS"信号.例如,如果我加载包含MKMapView的视图,并立即按下UINavigationController导航栏中的"返回"按钮,我会收到信号.我认为问题出在addAnnotations方法上:加载我的MKMapView时,我会向它添加注释,但看起来所有内容都是异步完成的.如果我在按下"返回"按钮之前等待一秒钟,我没有错误,但如果我太快,它会崩溃.如果我删除addAnnotations行,我根本没有错误.我想这是因为我的视图是由UINavigationController在addAnnotations方法完成工作之前发布的.

对此有什么好的解决方案?我不希望用户等待(例如显示加载视图); 我想解决方案可能是一个更好的内存管理,但我不知道我怎么能做到这一点.

    if(DEBUG_MODE) { NSLog(@"Creating array of placemarks : begin"); }
self.placemarkCache = [[NSMutableArray alloc] init];
// Loading placemarks for a placemark dictionary
NSArray *sortedKeys = [[self.placemarkDictionary allKeys] sortedArrayUsingSelector:@selector(compare:)];
for (id key in sortedKeys) {
    MyPlacemark *currentPlacemark = [self.placemarkDictionary objectForKey:key];
    [self.placemarkCache addObject:currentPlacemark];
    [currentPlacemark release];
}
if(DEBUG_MODE) { NSLog(@"Creating array of placemarks : done"); }
if(DEBUG_MODE) { NSLog(@"Adding placemarks : begin"); }
[self.mapView addAnnotations:self.placemarkCache];
if(DEBUG_MODE) { NSLog(@"Adding placemarks : done"); }
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我在地图上显示任何内容之前得到"添加地标:完成"消息.

iphone objective-c mapkit

1
推荐指数
1
解决办法
1831
查看次数

版本控制"最佳实践"

我一直在阅读关于版本控制主题的所有问题,但我认为我没有找到一个看起来像我自己的场景.

场景是:

我们有一个中型/大型Web应用程序,它(至少应该有)一个部署到所有客户端的核心.当我们向客户端演示应用程序时,几乎所有应用程序都要求更改布局,列表中的数据或数据输入表单中的字段等等......几乎所有这些更改都需要更改剩余的"应用程序的"层".

在我们目前的情况下,我们使用CVS(使用tortoiseCVS)并且我们不使用分支,我们使用标签来区分代码更改与应用程序(是的,我知道它非常糟糕).当我们想要发布给特定客户端,签入更改等时,这会带来很多问题....准备发布版本总是需要大约1-2天的工作,有时它仍然会中断.

有时,来自客户端的请求也会包含在核心中,以便分发给所有客户端.

所以我的问题是:分支机构是将更改隔离到应用程序的自定义客户端版本的最佳方法吗?每当新客户要求定制时我们应该分支吗?或者我们应该将它视为一个完全不同的项目,具有不同的存储库?

所有不同的版本都必须保留,因为我听说分支是"临时的"我怀疑分支是否是最好的解决方案.

感谢您的答复.

安东尼奥迪亚斯

cvs branch

5
推荐指数
1
解决办法
1985
查看次数

如何用ActiveRecord编写连接查询?

有谁知道如何用AR写这个查询?

select *, (m.user_id=1) as member from band b join memberships m on m.band_id = g.id;
Run Code Online (Sandbox Code Playgroud)

提前致谢.

ruby sql postgresql activerecord ruby-on-rails

0
推荐指数
1
解决办法
231
查看次数

如何格式化PRINT或WRITE语句以覆盖控制台屏幕上的当前行?

我想在控制台屏幕上显示使用DO循环完成的计算的进度.我可以将进度变量打印到终端,如下所示:

PROGRAM TextOverWrite_WithLoop
IMPLICIT NONE
INTEGER :: Number, Maximum = 10
 DO Number = 1, MAXIMUM   
  WRITE(*, 100, ADVANCE='NO') REAL(Number)/REAL(Maximum)*100     
  100 FORMAT(TL10, F10.2)
  ! Calcultations on Number     
 END DO    
END PROGRAM TextOverWrite_WithLoop
Run Code Online (Sandbox Code Playgroud)

控制台屏幕上的上述代码输出为:

10.00 20.00 30.00 40.00 50.00 60.00 70.00 80.00 90.00 100.00

全部在同一行,仅由控制台窗口包裹.

ADVANCE ="没有"参数和TL10(选项卡留下这么多空格)编辑符能很好地覆盖在同一行的文本,如下面的代码的输出:

WRITE(*, 100, ADVANCE='NO') 100, 500
100 FORMAT(I3, 1X, TL4, I3)
Run Code Online (Sandbox Code Playgroud)

方法是:

500

代替:

100 500

由于TL4编辑描述符.

从这两个实例可以得出结论,WRITE语句不能覆盖由另一个WRITE语句写入的内容或者先前执行相同的WRITE语句(如在DO循环中).

这可以以某种方式克服吗?

我在Windows 7 RC1上使用FTN95编译器.(G95编译器的安装程序蓝屏Windows 7 RC1,甚至认为它在Vista上工作正常.)

我知道Fortran 95写语句中的抑制换行问题,但它对我不起作用,因为这个问题的答案意味着新的输出被添加到同一行的前一个输出中; 而不是新的输出覆盖以前的输出.

提前致谢.

printing formatting fortran

8
推荐指数
2
解决办法
2万
查看次数