这是我的项目结构:
我有两个spring-boot模块。在auth模块中,我实现了spring安全性。我有Auth控制器,该控制器使我们可以注册并登录(返回jwt令牌)。 在帐户管理模块中,我想获取用户个人资料,并且应该使用身份验证模块。我应该有不同的数据库。
这是我的父母pom:
<groupId>com.social.network</groupId>
<artifactId>social-network</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>social-network-auth</module>
<module>social-network-account-management</module>
</modules>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
这是auth模块的pom:
<groupId>com.social.network.auth</groupId>
<artifactId>social-network-auth</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>social-network-auth</name>
<description>Authentication module for SocialNetwork</description>
<parent>
<groupId>com.social.network</groupId>
<artifactId>social-network</artifactId>
<version>1.0-SNAPSHOT</version>
<!--<relativePath>../pom.xml</relativePath>-->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<jwt.version>0.6.0</jwt.version>
<swagger.version>2.7.0</swagger.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
这是我的帐户管理的pom
<groupId>com.social.network.account.management</groupId>
<artifactId>social-network-account-management</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>social-network-account-management</name>
<description>Account management module for SocialNetwork</description>
<parent>
<groupId>com.social.network</groupId>
<artifactId>social-network</artifactId>
<version>1.0-SNAPSHOT</version>
<!--<relativePath>../pom.xml</relativePath>-->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.social.network.auth</groupId>
<artifactId>social-network-auth</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
我想运行所有模块。
但是构建失败。我越来越无法在项目egs-social-network上执行目标org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy(default-deploy):部署失败:POM中未指定存储库元素在distributionManagement元素内部或-DaltDeploymentRepository = id :: layout :: url参数中-> [帮助1]
答案 0 :(得分:1)
首先,您应该了解 两个不同的应用程序不能在同一端口上运行 。因此,您以正确的方式进行了思考,但是主要目标是将逻辑部分分离到不同的模块中,我的看法是,您已经做到了。因此,现在,只需建立正确的依赖关系链即可。 (子->父!)而且子模块也不能是Spring Boot应用程序。它可能是您的主模块的某种附加类集或库。并请阅读答案How to make one module depend on another module artifact?。您可以在一个应用程序中具有乘法控制器,但是具有不同的映射,因此您不需要两个不同的应用程序。 顺便说一句,首先请运行mvn package并安装=)
答案 1 :(得分:0)
您必须致电
mvn spring-boot:run
在每个模块中运行应用程序。
您可以在“插件”下找到目标。
但是当您使用IntelliJ时,有一个Spring Boot运行仪表板,您可以在其中运行所有应用程序。