在Gradle中进行资源过滤的推荐方法是在属性文件中包含令牌,然后在处理时替换它们.
例
# config.properties
hostname = @myhost@
Run Code Online (Sandbox Code Playgroud)
并在build.gradle中执行类似下面的操作
processResources {
filter ReplaceTokens, tokens: [
"myhost": project.property('myhost')
]
}
Run Code Online (Sandbox Code Playgroud)
这种方法的问题在于从像eclipse这样的IDE运行时它不起作用.我希望属性文件没有Gradle特定的令牌,即只有
hostname = localhost
Run Code Online (Sandbox Code Playgroud)
但是从Gradle构建时可以选择替换它.
我正在使用slf4j的logback,我需要更改特定记录器的模式,但保持appender相同.
这是我的配置:logback.xml
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %class{36}:%L - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${logFile}</file>
<append>false</append>
<!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %class{36}:%L - %msg%n</pattern>
</encoder>
</appender>
<!-- We want error logging from this logger to go to an extra appender It still inherits CONSOLE STDOUT from the root logger -->
<logger name="${log.name:-com.mycompany}" level="${log.level:-INFO}">
<appender-ref ref="STDOUT" /> …Run Code Online (Sandbox Code Playgroud) Gradle的distZip任务创建一个具有以下结构的zip
MyApp.zip
`-- MyApp
|-- bin
| |-- ...
`-- lib
|-- ...
Run Code Online (Sandbox Code Playgroud)
如何跳过父目录,只需压缩下面的文件
MyApp.zip
|-- bin
| |-- ...
`-- lib
|-- ...
Run Code Online (Sandbox Code Playgroud) 我的Tomcat 7报告我的webapp可能存在内存泄漏
SEVERE: The web application [/mywebapp] appears to have started a
thread named [pool-1-thread-1] but has failed to stop it. This is
very likely to create a memory leak.
Run Code Online (Sandbox Code Playgroud)
我的webapp中有一个长时间运行的任务,当webapp启动时会被初始化.
public class MyContextListener implements ServletContextListener{
Scheduler scheduler = null;
public MyContextListener(){
scheduler = new Scheduler();
}
@Override
public void contextDestroyed(ServletContextEvent arg0) {
scheduler.stop();
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
scheduler.start();
}
}
Run Code Online (Sandbox Code Playgroud)
..和我的Scheduler.java
public class Scheduler {
private final ScheduledExecutorService fScheduler;
public Scheduler() {
fScheduler = Executors.newScheduledThreadPool(1);
} …Run Code Online (Sandbox Code Playgroud) 我有一个在Windows环境变量中定义的环境变量 - >用户变量
$MY_VARIABLE=mypath
Run Code Online (Sandbox Code Playgroud)
在PHP中我尝试访问它如下
<?php
echo $_ENV["MY_VARIABLE"];
Run Code Online (Sandbox Code Playgroud)
但它不会打印任何东西.我在这里遗漏了什么,或者PHP无法访问用户环境变量?
编辑:我正在运行PHP作为Apache模块(我最初遗漏的重要信息).
我正在使用ScrapyJS和Splash模拟表单提交按钮单击
def start_requests(self):
script = """
function main(splash)
assert(splash:autoload("https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"))
assert(splash:go(splash.args.url))
local js = [[
var $j = jQuery.noConflict();
$j('#USER').val('frankcastle');
$j('#password').val('punisher');
$j('.button-oblong-orange.button-orange a').click();
]]
assert(splash:runjs(js))
local resumeJs = [[
function main(splash) {
var $j = jQuery.noConflict();
$j(document).ready(function(){
splash.resume();
})
}
]]
assert(splash:wait_for_resume(resumeJs))
return {
html = splash:html()
}
end
"""
splash_meta = {'splash': {'endpoint': 'execute', 'args': {'wait': 0.5, 'lua_source': script}}}
for url in self.start_urls:
yield scrapy.Request(url, self.after_login, meta=splash_meta)
def after_login(self, response):
print response.body
return
Run Code Online (Sandbox Code Playgroud)
在做完之后splash:runjs(js),我试图splash:wait(5)splash:wait_for_resume …
假设我有一个带有ChangeListener的JTabbedPane
JTabbedPane tabbedPane = new JTabbedPane();
// Add few tabs
.....
.....
tabbedPane.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent changeEvent) {
// How to determine if the changeEvent was fired because of a tab remove/add ?
}
});
Run Code Online (Sandbox Code Playgroud)
我正在做某个地方
tabbedPane.removeTabAt(2);
Run Code Online (Sandbox Code Playgroud)
和其他地方
tabbedPane.add(panel, 0);
Run Code Online (Sandbox Code Playgroud)
ChangeListener现在应该被解雇了,有没有办法在监听器中确定是否由于选项卡删除/添加而被调用?
编辑:我基本上只是在用户在选项卡之间切换而不是在添加或删除时才尝试执行某些操作.
我一直在学习Java 8的并行流,这篇文章出现在Google搜索的第一页上.我无法理解文章中的这一特定内容
...所有并行流都使用公共fork-join线程池,如果您提交长时间运行的任务,则可以有效地阻止池中的所有线程.
我无法弄清楚长时间运行的任务如何阻止池中的所有其他线程.
我真的无法弄清楚数学可以为以下设计进行平滑过渡。任何帮助将不胜感激 :)。
在过渡期间,页面会上下跳跃,但我希望它们平滑。
设计
过渡
Relavent ViewPage代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
PagerAdapter pagerAdapter = new PagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(pagerAdapter);
viewPager.setOffscreenPageLimit(3);
viewPager.setPageMargin(100);
viewPager.setPageTransformer(false, new ViewPager.PageTransformer() {
@Override
public void transformPage(View page, float position) {
int pageWidth = viewPager.getMeasuredWidth() - viewPager.getPaddingLeft() - viewPager.getPaddingRight();
int pageHeight = viewPager.getHeight();
int paddingLeft = viewPager.getPaddingLeft();
float transformPos = (float) (page.getLeft() - (viewPager.getScrollX() + paddingLeft)) / pageWidth;
final float normalizedposition = Math.abs(Math.abs(transformPos) - 1);
page.setAlpha(normalizedposition + 0.5f);
if (transformPos …Run Code Online (Sandbox Code Playgroud) 我有以下项目结构
MyProject
|-- build.gradle
|-- client.private
|-- server.public
|-- app
| |-- build.gradle
| |-- lint.xml
| |-- proguard-project.txt
| |-- project.properties
| `-- src
Run Code Online (Sandbox Code Playgroud)
并希望包含client.private和server.public文件到最终apk的assets文件夹,但遗憾的是无法这样做.
在我的中有以下内容 app/build.gradle
...
android {
...
applicationVariants.all { variant ->
variant.mergeAssets.doLast {
copy {
from(['../client.private', '../server.public'])
into("${buildDir}/assets/${variant.dirName}")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但它只复制文件app/build/assets/debug,它没有与apk打包.
java ×4
gradle ×3
android ×2
forkjoinpool ×1
java-8 ×1
java-stream ×1
jtabbedpane ×1
logback ×1
logging ×1
memory-leaks ×1
php ×1
python ×1
scrapy ×1
scrapyjs ×1
slf4j ×1
swing ×1
tomcat ×1