我想从build.gradle文件执行gradle 构建命令。
构建.gradle 文件
apply plugin: 'java'
apply plugin: 'application'
task me{
//Can we perform gradle build command here.
}
Run Code Online (Sandbox Code Playgroud)
问题: 我们可以在任务我中执行 gradle build 命令吗,就像我们在命令提示符下执行的那样(附有屏幕截图)..?
注意:我使用的是 Windows 环境,请假设我在 build.gradle 文件中提供所有其他语句。我可以通过执行从命令提示符构建
我想从命令提示符执行此任务,它应该负责调用gradle build命令。(附截图)
使用的 jdk:1.8
不知道是什么问题,配置格式是有效的,输入时间也是有效的,真的很困惑是什么问题。
public class Test {
public static void main(String[] args) {
String configuredFormat = "yyyyMMddHHmmssSSS";
String inputTime = "20200203164553123";
DateTimeFormatter dt = DateTimeFormatter.ofPattern(configuredFormat);
DateTimeFormatter strictTimeFormatter = dt.withResolverStyle(ResolverStyle.STRICT);
try {
LocalTime.parse(inputTime, strictTimeFormatter);
System.out.println("success");
} catch (DateTimeParseException | NullPointerException e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的例外:
java.time.format.DateTimeParseException: Text '20200203164553123' could not be parsed at index 0
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
at java.time.LocalTime.parse(LocalTime.java:441)
at com.Test.main(Test.java:20)
Run Code Online (Sandbox Code Playgroud) 我已经经历了许多具有相同标题的问题,但我没有得到我正在寻找的答案.
在Greeter下面的课程中有一个简单的sysout.据我了解,lambda关心的是签名(即返回类型和参数数量).但如果我删除
int add(int a);
它完美有效,因为编译器将检查Greeting接口中是否有任何可用的方法没有参数且返回类型为void.
但是当我在那里保留那个方法时,我得到了主题行中提到的编译错误,根据我的理解编译器将转到Greeting接口,它将看到有两种方法.但是应该没有歧义,因为我的lambda表达式查找返回类型为void且只有一个参数的方法.基于这个类比,只有一种方法,所以理想情况下它不应该给出错误.
我知道我的比喻在这里是错误的,我知道它必须是一个功能界面,但我也认为我上面提到的过程正是编译器的工作方式.
任何人都可以让我知道我错在哪里以及编译器在我的例子中是如何工作的?
问候界面
package lambadas;
public interface Greeting {
void perform();
int add(int a);
}
Run Code Online (Sandbox Code Playgroud)
迎宾班
package lambadas;
public class Greeter {
public static void main(String[] args) {
Greeting l = () -> System.out.println("hello");
l.perform();
}
}
Run Code Online (Sandbox Code Playgroud)
HelloWorldGreeting
package lambadas;
public class HelloWorldGreeting implements Greeting {
@Override
public void perform() {
System.out.println("hello world.!");
}
@Override
public int add(int a) {
return 0;
}
}
Run Code Online (Sandbox Code Playgroud) 问题陈述
我无法通过 Spring Boot 项目构建,我想通过它来保护我的应用程序。钥匙斗篷。
预期产出
项目构建成功,当我点击其余 URL 时,它将重定向到密钥隐藏页面进行身份验证。
员工休息控制器
@RestController
public class EmployeeRestController {
@GetMapping(path = "/username")
public String getAuthorizedUserName() {
return "Username Returned";
}
@GetMapping(path = "/roles")
public String getAuthorizedUserRoles() {
return "Roles Returned";
}
}
Run Code Online (Sandbox Code Playgroud)
启动
@SpringBootApplication
public class Startup {
public static void main(String[] args) {
SpringApplication.run(Startup.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
应用属性
server.port=8085
keycloak.realm=wow
keycloak.auth-server-url=http://localhost:8180/auth
keycloak.resource=wow-client
keycloak.public-client=true
keycloak.securityConstraints[0].authRoles[0]=user
keycloak.securityConstraints[0].securityCollections[0].patterns[0]=/*
Run Code Online (Sandbox Code Playgroud)
pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.keycloak/keycloak-spring-boot-starter -->
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-spring-boot-starter</artifactId>
<version>7.0.0</version> …Run Code Online (Sandbox Code Playgroud)