当我maven install在我的多模块maven项目上运行时,我总是得到以下输出:
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
Run Code Online (Sandbox Code Playgroud)
所以,我google了一下,但我能找到的是我必须添加:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
Run Code Online (Sandbox Code Playgroud)
...到我的pom.xml.但它已经存在(在父母中pom.xml).
配置<encoding>maven-resources-plugin或maven-compiler-plugin也无法修复它.
所以有什么问题?
在我的一个项目中,我想添加一个功能,例如用户可以在公式中提供
sin (x + pi)/2 + 1
Run Code Online (Sandbox Code Playgroud)
我在我的Java应用程序中使用它
/**
* The formula provided by the user
*/
private String formula; // = "sin (x + pi)/2 + 1"
/*
* Evaluates the formula and computes the result by using the
* given value for x
*/
public double calc(double x) {
Formula f = new Formula(formula);
f.setVar("x", x);
return f.calc();
// or something similar
}
Run Code Online (Sandbox Code Playgroud)
我如何评估数学表达式?
在我们的应用程序中,我们有时会遇到以下异常:
javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath.
- with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory]
Run Code Online (Sandbox Code Playgroud)
我们已经发现只有当我们使用时才会发生这种情况,Collection.parallelStream()但如果我们使用Collection.stream().
我们看到 JAXBThread.currentThread().getContextClassLoader()用于加载类。我们还看到,当使用 时parallelStream(),执行我们命令的线程使用不同的类加载器。有时是org.apache.catalina.loader.WebappClassLoader,有时是jdk.internal.loader.ClassLoaders.AppClassLoader。
现在看来,AppClassLoader不知道 JAXB 依赖项,而WebappClassLoader。
我们正在使用 Java 11 和以下 Maven 依赖项:
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
知道有什么问题吗?怎么可能,AppClassLoader不知道我们的依赖关系?
我只是想为我的Android应用程序实现一个颜色选择器,并在Android 4.1.1上遇到了一个奇怪的问题.以下代码不会在Android 4.1.1上创建预期的渐变,但它在2.3.7上创建:
Shader fadeInRight = new LinearGradient(0, 0, pWidth, 0, 0x00000000, 0xFF000000, Shader.TileMode.CLAMP);
Shader blackToWhite = new LinearGradient(0, 0, 0, pHeight, 0xFF000000, 0xFFFFFFFF, Shader.TileMode.CLAMP);
Shader whiteMask = new ComposeShader(blackToWhite, fadeInRight, PorterDuff.Mode.DST_IN);
Shader blackToColor = new LinearGradient(0, 0, pWidth, 0, 0xFF000000, hue, Shader.TileMode.CLAMP);
Shader shader = new ComposeShader(blackToColor, whiteMask, PorterDuff.Mode.SCREEN);
paint.setShader(shader);
...
canvas.drawRect(new Rect(0, 0, pWidth, pHeight), paint);
Run Code Online (Sandbox Code Playgroud)
这是问题所在:

(忽略Android 4.1.1下面的红色框.我只是谈论上面的渐变)
任何想法有什么不对?我认为我的代码中缺少一些东西,但我不知道,是什么.
编辑#1:
如果我只是用whiteMask了setShader,我也得到了两个系统不同的结果:通过梯度矩形照着2.3.7我可以看到配置菜单(这是弹出后面)的文本.此外,从左上边缘到右下边缘(黑色到白色)有一个渐变,但4.1.1上的渐变从左到右水平.所以这似乎是一个问题ComposeShader
编辑#2: 我找到了一个更简单的例子来描述这个问题:
Shader shader1 = new LinearGradient(0, 0, 0, …Run Code Online (Sandbox Code Playgroud) 我想访问一个提供DELETE端点的 HTTP API 。这个特定的端点需要一个项目列表(我想删除)作为 JSON 正文。
现在,我的问题是,我正在使用 Spring Webflux。但它的WebClient没有给我发送DELETE请求的可能性。对于 a POST,我会这样做:
webClient.post()
.uri("/foo/bar")
.body(...)
.exchange()
Run Code Online (Sandbox Code Playgroud)
但是对于DELETE,我得到了一个RequestHeadersSpec,它没有给我提供以下选项的选项body(...):
webClient.delete()
.uri("/foo/bar")
.body(...) <--- METHOD DOES NOT EXIST
.exchange()
Run Code Online (Sandbox Code Playgroud)
那么,在客户端使用 Spring Webflux 实现这一目标的方法是什么?
我有一个非常大的git存储库,想要从它克隆.在一台机器上(ArchLinux与git版本2.2.2)一切正常......
Cloning into 'foo'
remote: Counting objects: 2372505, done
remote: Compressing objects: 100% (456914/456914), done.
Receiving objects: 100% (2372505/2372505), 3.81 GiB | 6.20 MiB/s, done.
...
Run Code Online (Sandbox Code Playgroud)
...但是在另一台机器上(带有git版本2.3.0的Ubuntu,也尝试过1.7.0.4),我只看到以下内容:
Cloning into 'foo'
remote: Counting objects: 2372505, done.
Run Code Online (Sandbox Code Playgroud)
几个小时后,它结束了
Write failed: Broken pipe
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
Run Code Online (Sandbox Code Playgroud)
知道问题是什么?
顺便说说:
我想定义一个LaTeX命令,在每个字母后插入一个空格.
所以,如果我补充一下
\addSpaces{someText}
Run Code Online (Sandbox Code Playgroud)
结果应该是
s o m e T e x t
Run Code Online (Sandbox Code Playgroud)
我怎么能实现这个目标?
背景:我希望每个字母都加下划线,但这些字母应该在字母之间分开:
s o m e T e x t
_ _ _ _ _ _ _ _
NOT:
s o m e T e x t
_______________
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用dput. 正如launchpad.net 帮助中提到的,我只需要使用以下命令:
dput ppa:my-lp-id/ppa <source.changes>
Run Code Online (Sandbox Code Playgroud)
我的 PPA 被称为main. 我使用以下命令构建了包debuild -S并尝试上传结果foo_0.1.2_source.changes文件:
dput ppa:myid/main foo_0.1.2_source.changes
Run Code Online (Sandbox Code Playgroud)
但这导致
No host ppa:myid/main found in config
Run Code Online (Sandbox Code Playgroud)
在我的dput.cf我有以下内容:
[ppa]
fqdn = ppa.launchpad.net
method = ftp
# replace <launchpad-id> with your Launchpad ID
#incoming = ~<launchpad-id>/ubuntu
incoming = ~myid/ubuntu
login = anonymous
Run Code Online (Sandbox Code Playgroud)
所以,主人肯定在那里,但这里有什么问题?
编辑:似乎是 ArchLinux 上的 dput 问题。Ubuntu 上的相同命令非常有效。
我使用gatsby-plugin-manifestwithicon设置为一个图标,这对于 Android 和 iOS 设备来说非常好。但现在我想定义一个用于浏览器的附加图标(大小为 32x32 像素,文本较少)。但我也想保留其他图标。
那可能吗?如果是,怎么办?
我正在尝试刷新@ManyToMany关系,但它被清除了......
我的Project类看起来像这样:
@Entity
public class Project {
...
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable(name = "PROJECT_USER",
joinColumns = @JoinColumn(name = "PROJECT_ID", referencedColumnName = "ID"),
inverseJoinColumns = @JoinColumn(name = "USER_ID", referencedColumnName = "ID"))
private Collection<User> users;
...
}
Run Code Online (Sandbox Code Playgroud)
但我没有 - 我不想要 - 用户实体中的项目集合.
当我查看生成的数据库表时,它们看起来很好.它们包含所有列和约束(主键/外键).
但是当我持有一个包含用户列表的项目(并且用户仍在数据库中)时,映射表不会更新得到更新,但是当我之后刷新项目时,将清除用户列表.
为了更好地理解:
Project project = ...; // new project with users that are available in the db
System.out.println(project getUsers().size()); // prints 5
em.persist(project);
System.out.println(project getUsers().size()); // prints 5
em.refresh(project);
System.out.println(project getUsers().size()); // prints 0 …Run Code Online (Sandbox Code Playgroud)