我们package.html在项目中使用了很多遗留文件,我们希望将它们转换为package-info.java文件.手动执行此操作不是一种选择(文件太多).是否有一种自动化的好方法?
我们想要转换它们有几个原因:
来自javadoc规范:此文件是JDK 5.0中的新文件,比package.html更受欢迎.
不要在同一代码库中混合使用这两种类型的文件
为了避免Intellij/Eclipse构建将这些*.html文件放在我们的类dirs中(并且可能在发布二进制jar中),所以它们的行为就像我们的其他普通html资源一样.
BigDecimal的equals()方法也比较比例,所以
new BigDecimal("0.2").equals(new BigDecimal("0.20")) // false
Run Code Online (Sandbox Code Playgroud)
有人质疑它为何如此行事.
现在,假设我有一个Set<BigDecimal>,如何检查0.2是否在该集合中,是否独立?
Set<BigDecimal> set = new HashSet<>();
set.add(new BigDecimal("0.20"));
...
if (set.contains(new BigDecimal("0.2")) { // Returns false, but should return true
...
}
Run Code Online (Sandbox Code Playgroud) 我有一个带有此清单的eclipse插件:
...
Bundle-ClassPath: .,
lib/drools-api.jar,
lib/drools-core.jar,
...
Run Code Online (Sandbox Code Playgroud)
现在我们不想放入drools-api.jar和drools-core.jar控制源代码,因此我们使用插件从maven存储库中获取它们:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-bundle-classpath-libs</id>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>lib</outputDirectory>
<overWriteReleases>true</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<stripVersion>true</stripVersion>
<artifactItems>
<artifactItem>
<groupId>org.drools</groupId>
<artifactId>drools-api</artifactId>
</artifactItem>
<artifactItem>
<groupId>org.drools</groupId>
<artifactId>drools-core</artifactId>
</artifactItem>
...
Run Code Online (Sandbox Code Playgroud)
但是,我们第一次构建此模块时,它会失败,因为这会发生:
[WARNING] Missing classpath entry lib/drools-api.jar ...
[WARNING] Missing classpath entry lib/drools-core.jar ...
...
[INFO] --- maven-dependency-plugin:2.1:copy (copy-bundle-classpath-libs) ... ---
...
[INFO] Copying drools-api-5.2.0-SNAPSHOT.jar to .../lib/drools-api.jar
[INFO] Copying drools-core-5.2.0-SNAPSHOT.jar to .../lib/drools-core.jar
...
[INFO] --- maven-osgi-compiler-plugin:0.10.0:compile (default-compile) ... ---
...
[INFO] …Run Code Online (Sandbox Code Playgroud) 我已经为我们的maven多项目创建了一个hudson作业,其中包含5个模块,用于将SNAPSHOT工件部署到maven存储库.没关系,只要它成功构建而没有测试失败.但是,现在我想满足以下要求:
-Dmaven.test.failure.ignore=true完成,但在下一个要求失败.mvn test -Dmaven.test.failure.ignore=true,比第一次mvn deploy -DskipTests)不是解决方案,因为它是性能损失并且它混淆了哈德森报告页面并且它不是原子的(它在第二次构建中再次从存储库更新).有没有办法实现这个目标?
我有以下代码,我将Java方法的结果分配给freemarker变量.
<#assign singleBenchmark = solverBenchmark.findSingleBenchmark(problemBenchmark)>
Run Code Online (Sandbox Code Playgroud)
问题是该Java方法的返回值可能null.即使我检查该变量是否不是null:
<#if !singleBenchmark??>
<td></td>
<#else>
<td>${singleBenchmark.score}</td>
</#if>
Run Code Online (Sandbox Code Playgroud)
<#assign ...>如果Java方法返回null,它仍会在行上崩溃,但有以下异常:
freemarker.core.InvalidReferenceException: Error on line 109, column 45 in index.html.ftl
solverBenchmark.findSingleBenchmark(problemBenchmark) is undefined.
It cannot be assigned to singleBenchmark
at freemarker.core.Assignment.accept(Assignment.java:111)
Run Code Online (Sandbox Code Playgroud)
如何在不必findSingleBenchmark在我的ftl中多次调用该方法的情况下避免此异常?
如何将reveal.js演示文稿导出到LibreOffice(*.odp)或PowerPoint(*.ppt,*.pptx)?
导出到PDF相当容易,但是为了让我的同事重复使用我的幻灯片(并将它们与自己的幻灯片混合),他们需要ODP或PPT.我将始终坚持使用html幻灯片(例如reveal.js)因为它是git友好的.
在Java 8之前,我们实现Comparable.compareTo(...)如下:
public int compare(Person a, Person b) {
return new CompareToBuilder()
.append(a.getLastName(), b.getLastName())
.append(a.getFirstName(), b.getFirstName())
.toComparison();
}
Run Code Online (Sandbox Code Playgroud)
从Java 8开始,我们可以这样做:
public int compare(Person a, Person b) {
return Comparator
.comparing(Person::getLastName)
.thenComparing(Person::getFirstName)
.compare(a, b);
}
Run Code Online (Sandbox Code Playgroud)
新的Java 8方式可能允许我们放弃commons-lang3依赖.这种新的Java 8更快吗?有没有办法自动迁移?我没有找到IntelliJ的意图.
请注意,当存在反向订单并且涉及非自然比较时,它会变得有点复杂:
public int compare(SingleBenchmarkResult a, SingleBenchmarkResult b) {
return new CompareToBuilder()
.append(b.hasAnyFailure(), a.hasAnyFailure()) // Reverse
.append(a.getAverageScore(), b.getAverageScore(), resilientScoreComparator)
.toComparison();
}
Run Code Online (Sandbox Code Playgroud)
变
public int compare(SingleBenchmarkResult a, SingleBenchmarkResult b) {
return Comparator
.comparing(SingleBenchmarkResult::hasAnyFailure, Comparator.reverseOrder()) // Reverse
.thenComparing(SingleBenchmarkResult::getAverageScore, resilientScoreComparator)
.compare(a, …Run Code Online (Sandbox Code Playgroud) intellij-idea comparator java-8 apache-commons-lang apache-commons-lang3
我在Scala中使用Drools Planner(用Java编写)时遇到了问题.Drools规划器中的一个接口声明为:
public interface Score<S extends Score> extends Comparable<S>
Run Code Online (Sandbox Code Playgroud)
但是另一个界面使用'Score'作为原始类型:
public interface Solution {
Score getScore();
Run Code Online (Sandbox Code Playgroud)
然后我想在Scala中实现这个接口:
class MySolution extends Solution {
def getScore: Score = ...
Run Code Online (Sandbox Code Playgroud)
我得到一个编译错误:Scala编译器不允许编写'def getScore:Score'.当我尝试添加'Score [_]'或'Score [whatever]'编译器抱怨类型不兼容时.我该怎么办?
我想在嵌入式WildFly实例上对我的战争进行宏(不是微!)黑盒测试.
我的maven项目看起来像这样
<project>
...
<packaging>war</packaging>
<!-- Lots of classes in src/main/webapp and files in src/main/webapp -->
<dependencies>
<!-- Lots of compile/runtime dependencies that change very frequently -->
<!-- Lots of test dependencies that change very frequently -->
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)
我的arquillian测试需要满足以下要求:
src/main/webapp文件.从维护的角度来看,微型部署是不可能的,因为类依赖性和jar依赖性经常发生变化.所以我们不能枚举ShrinkWrap部署中的任何内容.pom.xml的test或arquillian.xml 中的任何内容进行硬编码.这包括版本字符串,依赖项列表,包或类列表,应用服务器安装目录等.pom.xml.JBOSS_HOME环境变量.理论上,这可以用Arquillian的Maven解析器,嵌入式容器@RunAsClient,maven故障安全插件,一些arquillian.xml魔法和大量的maven魔法来实现.但实际上,我不能让这些东西一起工作,我也找不到任何适合这个场景的文档,所以我希望有人能清楚地展示它们如何协同工作.
我最近将这个幻灯片从reveal.js 2.6.2 升级到3.5.0.一切正常,除了PDF导出现在有45000页而不是像升级前的350页.
要重现,请单击此链接并在Chrome中询问打印对话框,该对话框已显示页数.
我index.html没有改变.它还有这段代码:
<script>
if (window.location.search.match(/print-pdf/gi)) {
document.write('<link rel="stylesheet" href="website/reveal/css/print/pdf.css">');
}
</script>
Run Code Online (Sandbox Code Playgroud)
java ×5
maven ×2
reveal.js ×2
bigdecimal ×1
build ×1
comparator ×1
drools ×1
freemarker ×1
hudson ×1
java-8 ×1
javadoc ×1
jenkins ×1
libreoffice ×1
maven-2 ×1
maven-3 ×1
osgi ×1
powerpoint ×1
scala ×1
shrinkwrap ×1
tycho ×1
wildfly ×1