小编Kri*_*raj的帖子

是否可以在不使用令牌的情况下在Gradle中进行资源过滤?

在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构建时可以选择替换它.

gradle

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

在logback中为特定记录器使用不同的模式

我正在使用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)

java logging logback slf4j

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

Gradle - 如何在没有父目录的情况下创建distZip?

Gradle的distZip任务创建一个具有以下结构的zip

MyApp.zip
`-- MyApp
    |-- bin
    |   |-- ...
    `-- lib
        |-- ...
Run Code Online (Sandbox Code Playgroud)

如何跳过父目录,只需压缩下面的文件

MyApp.zip
|-- bin
|   |-- ...
`-- lib
    |-- ...
Run Code Online (Sandbox Code Playgroud)

gradle

7
推荐指数
2
解决办法
1344
查看次数

使用ScheduledExecutorService时,Java webapp内存泄漏

我的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)

java tomcat memory-leaks

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

在php中读取用户环境变量

我有一个在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模块(我最初遗漏的重要信息).

php environment-variables

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

ScrapyJS - 如何正确等待页面加载?

我正在使用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 …

python scrapy scrapyjs

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

Java Swing - 知道是否已在ChangeListener中删除/添加了选项卡

假设我有一个带有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 swing jtabbedpane changelistener

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

Fork-Join线程池中的长时间运行任务是否可以阻止所有线程?

我一直在学习Java 8的并行流,这篇文章出现在Google搜索的第一页上.我无法理解文章中的这一特定内容

...所有并行流都使用公共fork-join线程池,如果您提交长时间运行的任务,则可以有效地阻止池中的所有线程.

我无法弄清楚长时间运行的任务如何阻止池中的所有其他线程.

java multithreading java-8 forkjoinpool java-stream

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

Android ViewPager-此设计的平滑过渡

我真的无法弄清楚数学可以为以下设计进行平滑过渡。任何帮助将不胜感激 :)。

在过渡期间,页面会上下跳跃,但我希望它们平滑。

设计

在此处输入图片说明

过渡

在过渡期间,页面会上下跳跃,但我希望它们平滑。

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)

android android-viewpager android-pagetransformer

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

Android Gradle - 如何从根项目中包含资产?

我有以下项目结构

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.privateserver.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打包.

android gradle android-gradle-plugin

3
推荐指数
2
解决办法
3993
查看次数