LibJF/libjf-config-compiler-plugin/src/main/java/io/gitlab/jfronny/libjf/config/plugin/ConfigInjectTask.java

39 lines
1.3 KiB
Java

package io.gitlab.jfronny.libjf.config.plugin;
import io.gitlab.jfronny.libjf.config.plugin.util.GradleVersionUtil;
import io.gitlab.jfronny.libjf.config.plugin.util.ZipCompressor;
import org.gradle.api.file.DuplicatesStrategy;
import org.gradle.api.internal.file.copy.CopyAction;
import org.gradle.api.provider.Property;
import org.gradle.api.tasks.Input;
import org.gradle.api.tasks.Internal;
import org.gradle.api.tasks.bundling.Jar;
public abstract class ConfigInjectTask extends Jar {
@Input
public abstract Property<String> getModId();
private final GradleVersionUtil versionUtil;
public ConfigInjectTask() {
super();
setDuplicatesStrategy(DuplicatesStrategy.FAIL);
versionUtil = new GradleVersionUtil(getProject().getGradle().getGradleVersion());
}
@Override
protected CopyAction createCopyAction() {
return new ConfigInjectCopyAction(
getArchiveFile().get().getAsFile(),
getInternalCompressor(),
this.getMetadataCharset(),
isPreserveFileTimestamps(),
getModId().get()
);
}
@Internal
protected ZipCompressor getInternalCompressor() {
return versionUtil.getInternalCompressor(getEntryCompression(), this);
}
}