Salut.
J'ai un un problème sur le java et gradle. J’utilise IntelliJIDEA même si cela doit pas changer grand chose.
Dans ces projets java: https://github.com/ichorpowered/latch, https://github.com/trentech/ProjectCore et https://github.com/NucleusPowered/Nucleus les gens déclarent les infos du plugin dans le build.gradle et les valeurs sont stocké dans le gradle.properties et les valeurs sont remplacées comme cela par exemple:
blossom {
replaceTokenIn('src/main/java/io/github/nucleuspowered/nucleus/PluginInfo.java')
replaceToken '@name@', project.name
replaceToken '@version@', getVersion
replaceToken '@description@', project.description
replaceToken '@url@', project.url
replaceToken '@spongeversion@', declaredApiVersion
}
Le plugin a une class qui récupère les infos:
1 2 3 4 5 6 7 8 9 10 11 12
| public class Resource {
private Resource() {}
public final static String TEST = "@test@";
public final static String NAME = "@name@";
public final static String ID = "@id@";
public final static String VERSION = "@version@";
public final static String DESCRIPTION = "@description@";
public final static String AUTHOR = "@author@";
public final static String URL = "@url@";
} |
Donc quand on a besoin d’une de ces infos dans le code on peut utiliser cette class qui prends donc les infos dans les fichiers gradle.
Ainsi on peut déclarer un plugin minecraft par exemple de cette manière:
@Plugin(id = Resource.ID, name = Resource.NAME, version = Resource.VERSION, description = Resource.DESCRIPTION, authors = Resource.AUTHOR, url = Resource.URL)
Cela évite de dupliquer les informations, car on ne les écrit qu’a un seul endroit.
Malheureusement ça n’a pas l’air de fonctionner chez moi quelqu’un peut me dire pourquoi ?
Personne ?
Partager