可以在 settings.xml 中设置 Maven 本地存储库:
<localRepository>${user.home}/.m2/repository</localRepository>
Run Code Online (Sandbox Code Playgroud)
并且可以在命令行上设置 maven 本地存储库:
mvn clean install -Dmaven.repo.local=repository
Run Code Online (Sandbox Code Playgroud)
是否可以在 pom.xml 本身中指定?
注意:我想要一种在 pom.xml 中指定 maven 最初搜索工件的位置(默认情况下,~/.m2/repository)以及 maven 安装工件的位置mvn install(默认情况下,~/.m2/repository)的方法。
问题:Spring似乎使用不同的反序列化方法,LocalDate具体取决于它出现在一个@RequestBody请求中还是一个请求中@ReqestParam-这是否正确?如果正确,是否可以将它们配置为在整个应用程序中相同?
背景:在我的中@RestController,我有两种方法-一种GET和一种POST。GET期望类型为LocalDate; 的请求参数(“日期”);POST需要一个JSON对象,其中一个键(“日期”)的类型为LocalDate。它们的签名类似于以下内容:
@RequestMapping(value = "/entity", method = RequestMethod.GET)
public EntityResponse get(
Principal principal,
@RequestParam(name = "date", required = false) LocalDate date)
@RequestMapping(value = "/entity", method = RequestMethod.POST)
public EntityResponse post(
Principal principal,
@RequestBody EntityPost entityPost)
public class EntityPost {
public LocalDate date;
}
Run Code Online (Sandbox Code Playgroud)
我已经将我的ObjectMapper配置如下:
@Bean
public ObjectMapper objectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
objectMapper.registerModule(new JavaTimeModule());
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
return objectMapper;
}
Run Code Online (Sandbox Code Playgroud)
这样可以确保系统接受LocalDateyyyy-MM-dd格式,并按预期的方式反序列化它-至少在它是a的一部分时@RequestBody。因此,如果以下是POST的请求正文
{ …Run Code Online (Sandbox Code Playgroud) 使用Grails,在UrlMappings.groovy中,似乎我可以指定控制器和操作:
"/someURL" (controller: "Some", action: "someAction")
Run Code Online (Sandbox Code Playgroud)
或者我可以指定视图:
"/someURL" (view: "someView")
Run Code Online (Sandbox Code Playgroud)
但我无法指定控制器,操作和视图:
"/someURL" (controller: "Some", action: "someAction", view: "someView")
Run Code Online (Sandbox Code Playgroud)
相反,我必须在控制器中指定视图.有没有办法在UrlMappings.groovy中指定视图?或者它是不可能的?
默认情况下,gradle.user.home设置为~/.gradle- 我想将其更改为相对于项目的目录,而不是开发人员的主目录。
我知道当你调用 gradle 时可以这样做,如下所示:
$ gradle --gradle-user-home=./project-relative-directory
Run Code Online (Sandbox Code Playgroud)
或者
$ gradle -Dgradle.user.home=./project-relative-directory
Run Code Online (Sandbox Code Playgroud)
我知道您可以通过将以下内容添加到 settings.gradle 来更改构建缓存的位置:
buildCache {
local {
// Set local build cache directory.
directory = "${settingsDir}/build-cache"
}
}
Run Code Online (Sandbox Code Playgroud)
但 gradle 继续用于gradle.user.home其他缓存。
该手册声称您可以gradle.user.home在 中指定gradle.properties,如下所示:
systemProp.gradle.user.home=./project-relative-directory
Run Code Online (Sandbox Code Playgroud)
但这似乎根本不起作用,不适用于绝对路径或相对路径;尽管稍后可以通过 检索它System.get,gradle但似乎并未使用它。
还有其他解决方案吗?
什么是k-匿名和l-多样性,它们之间有什么区别?此概念用于以下IEEE论文:请参见此处.