小编Raf*_*ele的帖子

Maven shade插件警告:我们有重复 - 如何解决?

这是我的项目POM(链接到粘贴,所以你可以右键单击>另存为pom.xml)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.zybnet</groupId>
    <artifactId>excel-reporter</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>mvn1</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.8</version>
        </dependency>
        <dependency>
            <groupId>net.sf.jasperreports</groupId>
            <artifactId>jasperreports</artifactId>
            <version>4.6.0</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>2.0.0</version>
        </dependency>
    </dependencies>

    <build>
        <resources>
            <resource>
                <directory>${project.build.sourceDirectory}</directory>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <finalName>${artifactId}-${version}-tmp</finalName>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>1.7.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <filters>
                                <filter>
                                    <artifact>*:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/*.SF</exclude>
                                        <exclude>META-INF/*.DSA</exclude>
                                        <exclude>META-INF/*.RSA</exclude>
                                    </excludes>
                                </filter>
                            </filters>
                            <transformers> …
Run Code Online (Sandbox Code Playgroud)

maven maven-shade-plugin

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

无法获得通用的ResponseEntity <T>,其中T是泛型类"SomeClass <SomeGenericType>"

请帮我弄一个ResponseEntity<T>地方T本身就是一个泛型类型.正如我现在所看到的,现在春天RestTemplate不支持这个.我正在使用Spring MVC 3.1.2版

这是我想要使用的代码:代码:

ResponseEntity<CisResponse<CisResponseEntity>> res =
         this.restTemplate.postForEntity(
             this.rootURL, myRequestObj, CisResponse.class);
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

Type mismatch: cannot convert from ResponseEntity<CisResponse> to
ResponseEntity<CisResponse<CisResponseEntity>>
Run Code Online (Sandbox Code Playgroud)

这是明显的错误,但我今天如何解决它?

比我想要获得我的通用响应类型:

CisResponse<CisResponseEntity> myResponse= res.getBody();
CisResponseEntity entity = myResponse.getEntityFromResponse();
Run Code Online (Sandbox Code Playgroud)

现在,我使用这个解决方案,postForObject()而不是postForEntity():

CisResponse<CisResponseEntity> response = 
          this.restTemplate.postForObject(
               this.rootURL,myRequestObj, CisResponse.class);
Run Code Online (Sandbox Code Playgroud)

java generics rest spring spring-mvc

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

在maven测试阶段禁用Log4J日志

在IDE中进行开发时,跟踪和调试日志会很有帮助,但在构建期间,我发现这些行非常令人不安,并且混淆了由maven或其他构建工具打印出来的报告.

让log4j尊重像-Dlog4j.rootLogger=OFF1这样的系统属性来与maven一起使用或者不需要对项目文件进行更改的东西会很高兴.我知道我可以指定-Dlog4j.configuration=alternateconfig.props 2,但我在这里要求了解是否有人在构建过程中找到了一种更智能的方法来禁用日志记录,而且只需要很少的人工干预.即一些java类检测maven作为调用者,禁用log4j或其他智能解决方案.

任何提示?

笔记:

[1]:已经尝试过,但它不起作用.

[2]:这很不错,但它似乎不适合maven(也许肯定会跳过它)

java logging log4j build maven

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

Rhino:Java数字的行为与Javascript数字不同

我在我的Javascript程序中可以访问这个Java类的实例

public class ContentProvider {
  public Object c(int n) {
    switch (n) {
      case 1: return 1.1;
      case 2: return 2.2;
      case 3: return 3.3;
      case 4: return "4";
      case 5: return new java.util.Date();
    }
    return null;
  }
}
Run Code Online (Sandbox Code Playgroud)

这是main()中的代码:

ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
engine.put("ctx", new ContentProvider());

res = engine.eval("ctx.c(1)");

System.out.printf("rhino:> %s (%s)%n"
        , res
        , res != null ? res.getClass().getName() : null
);
Run Code Online (Sandbox Code Playgroud)

简单的表达式ctx.c(1)打印:

rhino:> 1.1 (java.lang.Double)
Run Code Online (Sandbox Code Playgroud)

现在这里发生的事情是ctx.c(1) + ctx.c(2): …

javascript java rhino

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

了解"this"关键字

在这个提交中,有一个我无法解释的变化

deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments );
Run Code Online (Sandbox Code Playgroud)

deferred.done( arguments ).fail( arguments );
Run Code Online (Sandbox Code Playgroud)

据我所知,当你调用一个函数作为某些对象的成员一样obj.func(),里面的功能this势必会obj,所以就没有使用通过调用函数apply()只是为了绑定thisobj.相反,根据评论,这是必要的,因为前面的一些$.Callbacks.add实现.

我怀疑是不是jQuery的,但关于JavaScript语言本身:当你调用一个函数一样obj.func(),怎么能是这里面func()this关键词不绑定obj

javascript jquery

16
推荐指数
2
解决办法
606
查看次数

作为Upstart服务启动时,无法读取UTF-8文件名

我的Java程序以递归方式读取目录的内容.这是一个示例树(请注意非ASCII字符):

./sviluppo
./sviluppo/ciaò
./sviluppo/ciaò/subdir
./sviluppo/pippo
./sviluppo/pippo/prova2.txt <-file
./sviluppo/così
Run Code Online (Sandbox Code Playgroud)

该程序作为Upstart服务启动,其配置文件名为 /init/myservice.conf

description "Private Service"
author "AD"
start on runlevel [2345]
stop on runlevel [! 2345]
exec java -jar /home/mainFind.jar >> /tmp/log.txt
Run Code Online (Sandbox Code Playgroud)

当我启动服务时:

root@mdr:/tmp#  service myservice start
myservice start/running, process 15344
Run Code Online (Sandbox Code Playgroud)

它不会在名称中记录带有非ASCII字符的文件名:

root@mdr:/tmp#  cat /tmp/log.txt
Found dir: /mnt/sviluppo/pippo
Run Code Online (Sandbox Code Playgroud)

相反,当我运行命令时(以root身份,模仿它作为服务启动时会发生什么)它可以正常工作,有和没有exec:

root@mdr:/tmp# java -jar /home/mainFind.jar  >> /tmp/log.txt
root@mdr:/tmp# exec java -jar /home/mainFind.jar  >> /tmp/log.txt

root@mdr:/tmp#  cat /tmp/log.txt
Found dir: /mnt/sviluppo/ciaò
Found dir: /mnt/sviluppo/ciaò/subdir
Found dir: /mnt/sviluppo/pippo
Found dir: /mnt/sviluppo/così
Run Code Online (Sandbox Code Playgroud)

为什么同一个用户运行的同一个程序在Upstart服务中不起作用,但是从命令行运行时是否正确处理了所有文件名?这是Java代码

public static …
Run Code Online (Sandbox Code Playgroud)

java ubuntu service special-characters

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

每N毫秒播放一次声音

我正在开发一个节拍器应用程序.用户可以在运行时选择bpm,我的应用程序将相应地播放"tick"声音."tick"是单个节拍器"shot"(mp3).我尝试使用Handler和MediaPlayer实现它,但节拍器根本不精确.所以我想改变整个方法:当用户选择一个新的bpm值时,我通过每隔N毫秒重复一次嘀嗒声X次来合成一个新的声音,然后循环这个运行时创建的声音.这是一个有效的选择吗?如何在Android中实现?

java audio android

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

当未指定大小时,PopupWindow超出屏幕

那里的大多数示例都精确指定了弹出窗口的宽度和高度.我希望它们是WRAP_CONTENT - 因为内容是由dinamically确定的,所以在构造函数中我为宽度和高度设置-2并通过showAsDropDown(View anchor)显示它

这样做,弹出窗口始终绘制在锚点视图下方,这意味着它可以在屏幕外绘制.以下代码段演示了此问题.尝试单击最后一个TextView,您将看不到任何PopupWindow,因为它显示在窗口边界之外.为什么不起作用?我注意到明确指定维度(例如200,100)不会触发问题.亲自尝试一下

package com.zybnet.example.popupdemo;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.TextView;

public class PopupDemoActivity extends Activity implements OnClickListener {
    private PopupWindow popup;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // -2 means WRAP_CONTENT THIS TRIGGERS THE PROBLEM
        popup = new PopupWindow(getPopupContent(), -2, -2);
        // When you specify the dimensions everything goes fine
        //popup = new PopupWindow(getPopupContent(), 200, 100);

        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);

        // FILL_PARENT …
Run Code Online (Sandbox Code Playgroud)

android

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

AudioTrack处于流模式MODE_STREAMING

我需要流式传输在运行时生成的PCM数据.所以我有一个带循环的线程

public void run() {
  while(...) {
    mAudioTrack.write(getPCM(), ...);
  }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用.它似乎不依赖于AudioTrack缓冲区大小.我希望它非常小,以模拟各种低延迟行为(150毫秒),因此用户可以动态地改变getPCM()选择的PCM

int bufferSize = 0.150 * sampleRate * channels * bitsPerSample / 8;
Run Code Online (Sandbox Code Playgroud)

但是,我试图将缓冲区大小增加到100k而没有结果

java audio android

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

EditText:如何启用/禁用输入?

我有一个7x6的EditText视图网格.我希望在应用程序启动时禁用所有这些功能,即它们应该像正常一样运行TextViews并且不可编辑.然后用户点击网格中的一个单元格,它改变其背景并执行一些视觉效果.如果用户再次单击该单元格,则应允许编辑.我正在OnClick()OnFocusChange()听众斗争,但我无法完成这样的基本互动.

setEnabled()setFocusable()没有帮助.我想知道为什么即使这样一个简单的任务在Android上也变得如此困难

android android-edittext

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