我有一个gradle任务,它执行一个创建多个zip文件的命令行工具.生成文件后,我希望Gradle将生成的zip文件发布到Maven存储库.每个zip文件都有自己的artifactId和groupId(可以从zip文件的文件名派生).zip文件的数量和名称事先是未知的,每次运行时可能会有所不同.
我不是Gradle专家,但在研究了文档后,我认为我应该将zip文件声明为maven-publish插件的发布.我知道如何使用生成单个存档文件的静态文件和任务来执行此操作.我无法在单个任务中找到有关如何使用多个归档执行此操作的示例,就像我的情况一样.
让我们说我build.gradle看起来像这样:
apply plugin: 'base'
apply plugin: 'maven-publish'
task init << {
buildDir.mkdirs()
}
task makeZipfiles(type: Exec, dependsOn: 'init') {
workingDir buildDir
commandLine 'touch', 'test1.zip', 'test2.zip'
// actual result files will be different on each run
}
publishing {
publications {
// ??? Publication of all files from task makeZipfiles,
// each with its own groupId and artifactId
}
}
Run Code Online (Sandbox Code Playgroud)
我已经能够通过迭代构建目录中的文件来创建出版物,但这只有在我第一次运行makeZipfiles任务然后运行发布任务时才有效.我想要的是使发布任务依赖于makeZipfiles任务,使用makeZipfiles任务的输出文件进行发布.
定义任务,工件和/或出版物以获得所需结果的正确方法是什么?
我正在使用Log4J进行日志记录的应用程序.有时,应用程序会创建非常长,> 10000个字符的日志消息.当日志显示在Eclipse的控制台窗口中时,这会导致性能问题.
我想限制最大消息长度,将长消息截断为最大长度.我怎么能用Log4J做到这一点?
我正在开发一个iPhone应用程序,我正在继承UINavigationBar来创建我的自定义导航栏.我想要的是一个更高的导航栏,以及一个位于titleView中的UISearchBar.我想在导航栏中留出更多空间,因为我想在搜索栏下面的底部放置一个分段控件.这是我到目前为止所做的:
// Custom navigation bar implementation
const CGFloat BUNavigationBarHeightIncrease = 38.0f;
@implementation BUNavigationBar
// This resizes the navigation bar height
- (CGSize)sizeThatFits:(CGSize)size {
CGSize amendedSize = [super sizeThatFits:size];
amendedSize.height += BUNavigationBarHeightIncrease;
return amendedSize;
}
// This repositions the navigation buttons
- (void)layoutSubviews {
[super layoutSubviews];
NSArray *classNamesToReposition = @[@"UINavigationButton"];
for (UIView *view in [self subviews]) {
if ([classNamesToReposition containsObject:NSStringFromClass([view class])]) {
CGRect frame = [view frame];
frame.origin.y -= BUNavigationBarHeightIncrease;
[view setFrame:frame];
}
}
}
@end
Run Code Online (Sandbox Code Playgroud)
我将此导航栏分配给导航控制器,如下所示:
- (IBAction)searchButton:(id)sender {
SearchViewController …Run Code Online (Sandbox Code Playgroud) 我们正在构建一个iOS应用程序,它使用AFNetworking连接到运行Tornado的服务器.服务器Cache-Control: private, max-age=900在响应中包含标头.在我的本地计算机上运行服务器时,我可以告诉AFNetworking使用缓存的值,因为服务器没有收到来自应用程序的重复请求的请求.当我们将相同的Tornado服务器部署到测试机器时,来自应用程序的每个请求都会导致在服务器上收到请求,忽略缓存的值.
两种设置之间的唯一区别是服务器的URL以及通过HTTPS连接访问测试服务器的事实,而localhost使用HTTP.HTTPS是否会影响AFNetworking的缓存,如果是这样,我们如何让AFNetworking尊重缓存头?
我想测试弧下的属性属性.我NSString在Class1.h(接口文件)下创建了两个属性:
@interface Class1 : NSObject
@property (nonatomic, strong) NSString *str1;
@property (nonatomic, weak) NSString *str2;
@end
Run Code Online (Sandbox Code Playgroud)
然后我在Class1.m(实现文件)下创建了一个测试方法:
@implementation Class1
- (void)testMethod {
NSString *strt1 = @"exampleString1";
NSString *strt2 = @"exampleString2";
self.str1 = strt1;
self.str2 = strt2;
strt1 = nil;
strt2 = nil;
dispatch_queue_t aQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, QOS_CLASS_BACKGROUND);
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(10 * NSEC_PER_SEC)), aQueue, ^{
[self testMethod2];
});
}
- (void)testMethod2 {
NSLog(self.str1);
NSLog(self.str2);
}
@end
Run Code Online (Sandbox Code Playgroud)
我在testMethod2方法中设置了一个断点然后检查我的NSString属性.我假设str2设置为nil但是在运行代码后结果是;
2015-07-03 14:14:04.412 ARCTEST …