Projet 1 : pom.xml :

<dependency>
            <groupId>project2</groupId>
            <artifactId>project2</artifactId>
            <version>{someversion}</version>
        </dependency>

Projet 2: un autre projet de printemps maven

Le projet 1 et le projet 2 sont tous deux des projets Spring Maven. De l'architecture ci-dessus, le projet 2 a été ajouté en tant que bibliothèque au projet 1. Ma question est la suivante : puis-je invoquer la classe du projet 1 du projet 2 en utilisant la réflexion ?

0
Techie321 17 mars 2021 à 08:13

3 réponses

Meilleure réponse

Nous pouvons invoquer les classes du projet 1 à partir des classes du projet 2 en utilisant la réflexion.

0
Techie321 17 mars 2021 à 11:05

En général, oui, vous pouvez accéder à project2 à partir de project1 lors de l'exécution. Cela fonctionnera à la fois par invocation de classe "régulière" et par réflexion.

Sinon pourquoi avoir ajouté la dépendance ? ;)

Une mise en garde cependant : Vous déclarez que les deux projets sont des "projets de printemps maven". Vous n'avez pas explicitement indiqué le démarrage du printemps, mais si project2 est un projet de démarrage du printemps et que le pot est créé à l'aide de spring-boot-maven-plugin, il est impossible de créer une telle dépendance car project2.jar n'est pas vraiment un jar (bien qu'il ait l'extension .jar).

0
Mark Bramnik 17 mars 2021 à 05:35

Ajout de la dépendance à la bibliothèque

Le projet d'application doit avoir une dépendance sur le projet de bibliothèque. Vous devez modifier votre fichier de création d'application en conséquence.Plus de détails

Pour Maven, ajoutez la dépendance suivante :

<dependency>
  <groupId>com.example</groupId>
  <artifactId>library</artifactId>
  <version>${project.version}</version>
</dependency>COPY

La liste suivante montre le fichier pom.xml terminé :

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>multi-module-application</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>multi-module-application</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>library</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
-1
Jimmy 17 mars 2021 à 06:49