139 lines
3.8 KiB
Java
139 lines
3.8 KiB
Java
package dorkbox.build;
|
|
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
|
|
import dorkbox.BuildVersion;
|
|
import dorkbox.build.util.BuildLog;
|
|
import dorkbox.build.util.FileNotFoundRuntimeException;
|
|
import dorkbox.util.storage.Storage;
|
|
import dorkbox.util.storage.StorageSystem;
|
|
|
|
public class ProjectJar extends Project<ProjectJar> {
|
|
|
|
public static
|
|
ProjectJar create(String projectName) {
|
|
ProjectJar projectJar = new ProjectJar(projectName);
|
|
Project.create(projectJar);
|
|
return projectJar;
|
|
}
|
|
|
|
// for serialization
|
|
private
|
|
ProjectJar() {
|
|
}
|
|
|
|
private
|
|
ProjectJar(String projectName) {
|
|
super(projectName);
|
|
}
|
|
|
|
@Override
|
|
public
|
|
ProjectJar addSrc(String file) {
|
|
BuildLog.title("Error")
|
|
.println("Cannot specify a source file in this manner for a jar. Please set the source along with the output file");
|
|
throw new FileNotFoundRuntimeException("Invalid file: " + file);
|
|
}
|
|
|
|
@Override
|
|
public
|
|
boolean build(final int targetJavaVersion) throws IOException {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public
|
|
String getExtension() {
|
|
return Project.JAR_EXTENSION;
|
|
}
|
|
|
|
@Override
|
|
public
|
|
ProjectJar outputFile(final String outputFile, final String outputSourceFile) {
|
|
if (!new File(outputFile).canRead()) {
|
|
BuildLog.title("Error")
|
|
.println("Unable to read specified jar output file: '" + outputFile + "'");
|
|
}
|
|
|
|
if (outputSourceFile != null && !new File(outputSourceFile).canRead()) {
|
|
BuildLog.title("Error")
|
|
.println("Unable to read specified jar output source file: '" + outputSourceFile + "'");
|
|
}
|
|
|
|
return outputFileNoWarn(outputFile, outputSourceFile);
|
|
}
|
|
|
|
@Override
|
|
public
|
|
ProjectJar addSrc(File file) {
|
|
BuildLog.title("Error")
|
|
.println("Cannot specify a source file in this manner for a jar. Please set the source along with the output file");
|
|
throw new FileNotFoundRuntimeException("Invalid file: " + file);
|
|
}
|
|
|
|
@Override
|
|
public
|
|
ProjectJar dist(String distLocation) {
|
|
super.dist(distLocation);
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
public
|
|
ProjectJar version(BuildVersion version) {
|
|
super.version(version);
|
|
return this;
|
|
}
|
|
|
|
public
|
|
ProjectJar outputFileNoWarn(final String outputFile, final String outputSourceFile) {
|
|
hash.add(outputFile);
|
|
if (outputSourceFile != null) {
|
|
hash.add(outputSourceFile);
|
|
}
|
|
|
|
return super.outputFile(outputFile, outputSourceFile);
|
|
}
|
|
|
|
public
|
|
ProjectJar outputFileNoWarn(final String outputFile) {
|
|
return outputFileNoWarn(outputFile, null);
|
|
}
|
|
|
|
/**
|
|
* Take all of the parameters of this project, and convert it to a text file.
|
|
*/
|
|
@Override
|
|
public
|
|
void save(final String location) {
|
|
Storage storage = StorageSystem.Disk()
|
|
.file(location)
|
|
.serializer(manager)
|
|
.make();
|
|
|
|
storage.put(this.name, this);
|
|
storage.save();
|
|
}
|
|
|
|
/**
|
|
* Take all of the parameters of this project, and convert it to a text file.
|
|
*/
|
|
public static
|
|
ProjectJar get(final String projectName, final String location) {
|
|
Storage storage = StorageSystem.Disk()
|
|
.file(location)
|
|
.serializer(manager)
|
|
.logger(null)
|
|
.make();
|
|
|
|
ProjectJar proj;
|
|
try {
|
|
proj = storage.get(projectName);
|
|
} catch (IOException e) {
|
|
throw new RuntimeException(e);
|
|
}
|
|
return proj;
|
|
}
|
|
}
|