我正在尝试创建一个 Circleci 工作流程,该工作流程构建 java WAR 并将其上传到我的组织现有的 S3 工件存储桶存储库。首先,构建项目并将一些信息保存在文件中,并将 VERSION 放入 BASH_ENV 中:
export "VERSION=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)" >> $BASH_ENV
if [ $CIRCLE_BRANCH = "master" ]; then
ENVIRONMENT=production
elif [ $CIRCLE_BRANCH = "develop" ]; then
ENVIRONMENT=qa
elif [ $CIRCLE_BRANCH = "release-1.0" ]; then
ENVIRONMENT=staging
else
ENVIRONMENT=$CIRCLE_BRANCH
fi
echo "ENVIRONMENT=$ENVIRONMENT" >> project.info
if [ -z "$ENVIRONMENT" ]; then
echo No environment is set
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
然后,我尝试使用官方 S3 orb 上传工件:
steps:
- attach_workspace:
at: .
- run: source project.info
- …Run Code Online (Sandbox Code Playgroud) 尝试使用流过滤集合,并尝试将以下lambda传递给filter()一个Set,它在标题中给出了一个神秘的错误:
unmatchedIncomingFields.stream().filter(s-> s.matches(fieldMatchPattern))
Run Code Online (Sandbox Code Playgroud)
同时,创建Predicate对象有效:
unmatchedIncomingFields.stream().filter(new Predicate<String>() {
@Override
public boolean test(String s) {
return s.matches(fieldMatchPattern);
}
});
Run Code Online (Sandbox Code Playgroud)
根据JLS,如果每个控制路径返回一个值,则lambda主体是"值兼容的".matches()总是被调用并且总是返回一个布尔值,所以我不明白问题是什么.
我也尝试了相同lambda的各种变体 - 有和没有括号和参数类型,并使用表达式和块返回体.
我想将某些安全敏感属性传递到我的 Spring Boot 应用程序中,我在开发过程中通过 Gradle、命令行和/或外部设置的系统属性启动该应用程序。我无法将这些写入 build.gradle 脚本或属性文件之类的内容中,因为它们将被提交到源代码管理中,然后将公开可用。
我找不到任何我找到的解决方案,使这些值可用于 Gradle 执行以使用 Gradle 2.4.4 工作的应用程序。
几个解决方案看起来像这样,其中系统属性在 bootRun 任务中设置:
bootRun {
systemProperties System.properties
}
Run Code Online (Sandbox Code Playgroud)
这似乎完全覆盖了默认的 bootRun 任务并破坏了 Spring Boot 的自动主类检测。
在其他地方,有人建议:
bootRun {
run {systemProperties System.properties}
}
Run Code Online (Sandbox Code Playgroud)
这不会覆盖正常配置,但在运行闭包中设置的属性在 bootRun 任务中不可用。
这一切都发生在我使用 Intellij 启动 Gradle 时。
如果我从命令行启动 Gradle 并尝试以属性方式传递,例如:
gradle -Dspring.email.password=123 bootRun
Run Code Online (Sandbox Code Playgroud)
无论配置如何,该属性都不会在任何地方设置。更改参数的顺序没有任何效果。
我正在测试一个需要用户登录才能使用的 Chrome 扩展程序,但我不知道如何使用我的测试帐户登录。我曾尝试登录,accounts.google.com但这显然是不够的;就 chrome API 而言,没有经过身份验证的用户。
Chrome 不断提示登录,chrome://chrome-signin但是因为我无法查看页面的 html,所以我无法确定在 Selenium 中与哪些元素进行交互以使用它。
selenium google-chrome google-account google-chrome-extension selenium-chromedriver
我有一个Foo包含两个重要属性的列表,Bar bar和Baz baz.实例可以共享Bar值但具有唯一的Bazs.
我想将此List转换为Map,Baz以便共享a的所有实例的唯一值Bar放在映射到该共享的Set中Bar.
Map<Bar, Set<Baz>> m = new HashMap<>();
for (Foo foo : fooRepository.findAll()) {
if (m.containsKey(foo.bar)) {
m.get(foo.bar).add(foo.baz);
} else {
Set<Baz> set = new HashSet<>();
set.add(foo.baz);
m.put(foo.bar, set);
}
}
Run Code Online (Sandbox Code Playgroud)
我自己的功能印章尚未证明完成任务.我试图将两者reduce和collectList一起尝试但在尝试将不同的参数实现为lambdas时因类型问题而被绊倒.
尝试使用Collect
m = fooRepository.findAll().stream().collect(new HashMap<Bar, Set<Baz>>(), (m, foo)->m.merge(Foo::getBaz, s->s.add(foo.getBar()));
Run Code Online (Sandbox Code Playgroud)
不完整,编译器无法确定m或foo和Foo :: getBaz的类型.
Reduce不起作用,因为它不允许累加器与元素具有不同的值.
我正在使用 webpack 来测试我正在编写的代码生成库的输出:https : //github.com/Neone-character-creator/app-generator/blob/master/project-template/webpack.config.js
该库将文件复制到一个新目录中,然后 webpack 为它们提供服务。
最终结果会将 Web 应用程序打包为注入服务器的 Java jar,前端将选择它应该显示的内容并将其嵌入到 iframe 中。我试图模拟这一点,我在其中显示 demo.html,其中包含一个加载 的 iframe,sheet.html加载app.bundle.js.
当开发服务器正在运行并且我更改了一些文件并重新调用库时,更新的文件被移动到位,在控制台中我可以看到 webpack 执行重新编译。
然而,当我查看编译后的包时,它实际上并没有改变,即使包的源文件不同。我必须重新启动服务器才能使包真正更新。
const path = require("path");
module.exports = {
"mode": "development",
"entry": "./src/main/resources/scripts/app.js",
"output" : {
path: path.resolve(__dirname, "src/main/resources/scripts/"),
filename: "app.bundle.js",
publicPath: "/src/main/resources"
},
devServer:{
before: function(app, server){
app.use("/templates/sheet.html", function(req, res) {
const resourcePath = path.resolve(__dirname + "/src/main/resources" + req.baseUrl);
res.sendFile(resourcePath);
});
app.use(/\/scripts\/.*/, function(req, res) {
const resourcePath = path.resolve(__dirname + "/src/main/resources" + req.baseUrl);
res.sendFile(resourcePath); …Run Code Online (Sandbox Code Playgroud) java ×2
lambda ×2
circleci-2.0 ×1
gradle ×1
java-8 ×1
java-stream ×1
selenium ×1
spring ×1
spring-boot ×1
webpack ×1