I trying to convert the following configuration in my build.gradle file into a custom gradle task written in java
build.gradle
configurations {
resultArchives
}
artifacts{
resultArchives file: file("path-to-war.war"), name: "name-of-deployable", type: 'war'
}
repositories {
flatDir {
name "fileRepo"
dirs "/media/some-folder"
}
}
uploadResultArchives {
repositories {
add project.repositories.fileRepo
}
}
This is how far I am with the port but maybe there is a simpler way to do this even from java:
customTask.java
@TaskAction
void deploy() {
Project project = getProject();
// Create a new configuration for the result archives
project.getConfigurations().create("resultArchives");
ArchivePublishArtifact apa = new ArchivePublishArtifact(new AbstractArchiveTask() {
@Override
protected CopyActionImpl getCopyAction() {
// TODO Auto-generated method stub
return null;
}
});
apa.setFile(new File("path-to-war.war"));
apa.setName("name");
apa.setType("war");
ArtifactHandler artifacts = project.getArtifacts();
artifacts.add("resultArchives", apa);
// Any default impl for this?
FlatDirectoryArtifactRepository ff = new FlatDirectoryArtifactRepository() {
private String repoName;
private Object[] dirs;
@Override
public void setName(String name) {
repoName = name;
}
@Override
public String getName() {
return repoName;
}
@Override
public void setDirs(Iterable<?> dirs) {
}
@Override
public Set<File> getDirs() {
return null;
}
@Override
public void dirs(Object... dirs) {
this.dirs = dirs;
}
@Override
public void dir(Object dir) {
// TODO Auto-generated method stub
}
};
ff.setName("fileRepo");
ff.dirs("/media/some-folder");
project.getRepositories().add(ff);
//
//uploadResultArchives {
//
repositories {
//
add project.repositories.fileRepo
//
}
//}