如果所有的Grails领域类实现equals()和hashCode()?Grails是否提供默认值?
似乎不应该这样,因为总有一个id.
gradle有许多使用参数的任务.
gradle test --tests *Test
gradle dependencyInsight --dependency junit
Run Code Online (Sandbox Code Playgroud)
如何在自己的自定义任务中访问参数?
我有一个 package-upgrades.nix,我用它来从不稳定或分支升级包。
{...}:
{
nixpkgs.config = {
packageOverrides = let
pkgsUnstable = import (
fetchTarball https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz
) { };
pkgsMaster = import (
fetchTarball https://github.com/NixOS/nixpkgs/archive/master.tar.gz
) { };
pkgsLocal = import (
fetchTarball https://github.com/moaxcp/nixpkgs/archive/local.tar.gz
) { };
in pkgs:
rec {
dropbox = pkgsUnstable.dropbox;
jbake = pkgsUnstable.jbake;
};
};
}
Run Code Online (Sandbox Code Playgroud)
这适用于 Windows 管理器之类的东西。
notion = pkgsUnstable.notion;
...
windowManager.notion.enable = true;
Run Code Online (Sandbox Code Playgroud)
问题是 allowUnfree 似乎没有在不稳定的导入上设置。我想尝试这样的事情。
pkgsUnstable = import (
fetchTarball https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz
) { inherit config };
Run Code Online (Sandbox Code Playgroud)
这会导致未定义配置的错误。
error: undefined variable ‘config’ at …Run Code Online (Sandbox Code Playgroud) 添加不稳定通道后
nix-channel --add https://nixos.org/channels/nixpkgs-unstable unstable
Run Code Online (Sandbox Code Playgroud)
我在〜/ .config / nixpkgs / overlays / package-upgrades / default.nix下添加了覆盖
self: super:
let
unstable = import <unstable> {};
in {
jbake = unstable.jbake;
}
Run Code Online (Sandbox Code Playgroud)
此叠加层已添加到 home.nix
nixpkgs.overlays = [ (import ./overlays/package-upgrades) ];
Run Code Online (Sandbox Code Playgroud)
我跑步时home-manager switch出现错误
0 + john@n1 nixpkgs $ home-manager switch
Too many heap sections: Increase MAXHINCR or MAX_HEAP_SECTS
Run Code Online (Sandbox Code Playgroud)
整个配置可以在这里找到。
如何使用家庭管理器和叠加图从不稳定的属性升级单个属性?
是否可以获取我的项目的目录 ${project.build.directory}/test-1.0-SNAPSHOT ?
我必须从该目录中排除某些文件以进行强化扫描,并且我刚刚意识到当版本更改时该目录也会更改。是否有一个属性可以用来替换该目录的名称?
我制作了一个自定义收集器,它使用 MessageDigest 来创建哈希。一般来说,MessageDigest 不能并行工作。我看到的问题在于combiner()方法。无法组合两个 MessageDigest 对象。当我返回 null 时,它似乎可以工作,但如果我抛出一个,UnsupportedOperationException它就会失败。实现不支持并行操作的收集器的典型方法是什么?
class ChecksumCollector implements Collector<String, MessageDigest, ByteBuffer> {
private String algorithm;
ChecksumCollector(final String algorithm) {
this.algorithm = algorithm;
}
@Override
public Supplier<MessageDigest> supplier() {
return () -> {
try {
return MessageDigest.getInstance(algorithm);
} catch (NoSuchAlgorithmException e) {
throw new UnsupportedOperationException("Could not find MessageDigest for algorithm " + algorithm, e);
}
};
}
@Override
public BiConsumer<MessageDigest, String> accumulator() {
return (md, s) -> md.update(s.getBytes(StandardCharsets.UTF_8));
}
@Override
public BinaryOperator<MessageDigest> combiner() { …Run Code Online (Sandbox Code Playgroud) 我想使用依赖注入在我的 Grails 应用程序中使用用 Java 编写的服务。在没有注入的情况下用 Java 创建它看起来像这样:
ServiceFactory.newInstance().getElementService()
Run Code Online (Sandbox Code Playgroud)
我想以与为控制器、服务和作业注入服务的方式相同的方式使用它。
class ImportJob {
def elementService
...
}
Run Code Online (Sandbox Code Playgroud)
我知道这应该进入resources.groovy,这就是我到目前为止所拥有的:
serviceFactory(ServiceFactory) { bean ->
bean.factoryMethod = 'newInstance'
}
elementService(ElementService) {
}
Run Code Online (Sandbox Code Playgroud)
我在文档中发现很少有资源可以帮助解决这个问题。我如何完成 elementService 以便它如上所述创建对象?我应该使用 BeanBuilder 吗?
我正在开发一个 cli 应用程序,它可以接受一些选项:--info, --debug, --trace。我想使用参数来设置整个应用程序的日志记录级别。是否有捷径可寻?这是我到目前为止所尝试过的:
LogLevel level;
if(info) {
level = LogLevel.INFO;
} else if (debug) {
level = LogLevel.DEBUG;
} else if (trace) {
level = LogLevel.TRACE;
} else {
level = LogLevel.WARN;
}
loggingSystem.setLogLevel(Logger.ROOT_LOGGER_NAME, level);
Run Code Online (Sandbox Code Playgroud)
loggingSystem被注入到类中。
@Inject
private LoggingSystem loggingSystem;
Run Code Online (Sandbox Code Playgroud) grails ×2
java ×2
nix ×2
nixos ×2
collectors ×1
gradle ×1
java-stream ×1
maven ×1
micronaut ×1
spring-bean ×1
war ×1