Lorsque j'ai construit en utilisant le fichier build.gradle comme indiqué ci-dessous, un fichier jar a été généré, mais le fichier de classe n'y existait pas.
build.gradle
apply plugin: 'java'
group = 'com.test.foo'
version = '1.0.0'
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
compileJava {
options.encoding = 'UTF-8'
}
repositories {
mavenCentral()
}
dependencies {
implementation('org.slf4j:slf4j-api:1.7.21')
testCompile 'junit:junit:4.12'
testCompile 'org.hamcrest:hamcrest-library:1.3'
}
La cause de cet événement était que le fichier java existait sous / src
.
J'utilise le plug-in Java cette fois, mais si ce plug-in est laissé par défaut, il construira le fichier java sous / src / main / java
.
Ainsi, lorsque j'ai déplacé le fichier java sous / src / main / java
et que je l'ai construit, le fichier de classe a été généré avec succès dans le fichier jar.
Cette fois, il y avait un contexte de changement du projet qui a été initialement construit avec Ant pour construire avec Gradle, et je n'étais pas très conscient de la structure de répertoires de la source, donc il y avait une telle condition dans le plug-in Java. Je ne savais pas.
En passant, vous pouvez également définir le répertoire à construire en utilisant sourceSets
comme indiqué dans ici. Je vais.
Cette fois, j'ai pris la politique de déplacer la source sous / src / main / java
en tenant compte du sens de l'unité avec d'autres projets, mais je pense que cette politique est également intelligente.
Si le fichier de classe n'existe pas dans le fichier jar généré à l'aide de Gradle, veuillez vérifier la structure des répertoires et quel est le répertoire à construire par Gradle.
Si vous utilisez un plug-in Java, le fichier java sous / src / main / java
est construit par défaut, donc faites correspondre la structure du répertoire à celui-ci ou définissez le répertoire à référencer lors de la construction. Assurez-vous de le définir explicitement.
Recommended Posts