43 votes

Pourquoi mes projets Gradle créent des modules séparés pour le principal et le test dans Intellij Idea

Récemment, j'ai trouvé tous mes gradle projets dans l'Idée d'importer séparés modules et de test. Les modules ressembler à ceci:

enter image description here

Comme vous pouvez le voir, il y a un "principal" module de contenu à la racine est le répertoire src/main et comprend uniquement les principales classes et des ressources, et il y a un "test" module ainsi. Les modules, il suffit de ne pas regarder à droite. Est-ce un comportement normal?

L'Idée est Intellij Idea 2016.1.1 et le gradle est - 2.11

Voici le contenu de construire.gradle

apply plugin: 'idea'
apply plugin: 'java'
apply plugin: 'spring-boot'
apply plugin: "jacoco"

version = getVersion()

sourceCompatibility = 1.8
targetCompatibility = 1.8

configurations {
    provided
}


sourceSets {
    main {
        compileClasspath += configurations.provided
    }
    test {
        resources {
            srcDir 'src/test/data'
        }

        compileClasspath += configurations.provided
    }
}

processResources {
    filter { String line -> line.replace("{version}", getVersion()) }
}

processTestResources {
    filter { String line -> line.replace("{version}", getVersion()) }
}

idea {
    module {
        scopes.PROVIDED.plus += [configurations.provided]
    }
}

repositories {
    mavenCentral()
}

35voto

Alex Spence Points 115

Vous pouvez désactiver cela dans les paramètres Gradle. Préférences -> Build, Execution, Deployment -> Build Tools -> Gradle: décochez créer des modules séparés par ensemble source.

J'ai dû le désactiver car cela provoquait des échecs de construction car Make ne faisait qu'extraire le jeu de sources principal. C'est probablement un bogue dans Intellij parce que gradle peut encore très bien construire les projets.

13voto

Arne Burmeister Points 8423

J'ai le même phénomène qui n'est pas ce que j'attendais surtout que IntelliJ 14 Ultimate se comporte totalement différentes sur le même projet.

C'est le nouveau comportement de l'Ide, introduit avec la version 2016.1 à traiter des dossiers complexes Gradle projets (qui n'a jamais travaillé complètement avant lorsque vous avez introduit une nouvelle source de jeux).

Il a l'air un peu étrange, mais fonctionne (mieux qu'avant). Et vous pouvez voir les dépendances de chaque source est définie dans le projet gradle fenêtre maintenant.

Voir aussi Ce qui est Nouveau dans IntelliJ IDEA 2016.1 et Gradle Bonté: Source des Ensembles d'IntelliJ IDEA Modules.

13voto

galcyurio Points 165

Environnement

  • IntelliJ IDEA 2017.2 (Build #UI-172.3317.76, construit le 15 juillet 2017)
  • Windows 10
  • Gradle projet

Dépannage

Dans mon cas, je ne trouve pas l'option qui"Alex Spence' mentionné.

Vous pouvez désactiver cette option dans Gradle Paramètres. Préférences -> Construire, l'Exécution, le Déploiement -> créer des Outils -> Gradle: décochez la case créer des modules séparés par définir la source.

J'ai cherché sur cette option, heureusement beaucoup d'autres réponses m'a montré où est cette option.

Solution

Nous pouvez décocher cette option lorsque nous importer ou de créer un module et l'importation de projet.

lors de l'importation de projet

  • Fichier -> Nouveau -> Projet à partir de sources existantes... -> sélectionnez fichier -> Gradle -> décochez la case créer des modules séparés pour définir la source de
  • Page d'accueil -> Importer un projet -> sélectionnez fichier -> Gradle -> décochez la case créer des modules séparés pour définir la source de

lorsque le module d'importation

  • La Structure du projet -> Ajouter -> module d'import -> sélectionnez fichier -> Gradle -> décochez la case créer des modules séparés pour définir la source de

quand créer un nouveau module

  • Vous pouvez également décocher cette option lorsque vous créer un nouveau module.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X