在 idea 中,通常存在于多个模块,如:
module1
pom.xml
module2
pom.xml
common-module
pom.xml
pom.xml
根 pom.xml 内容:
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-vue-plus</artifactId>
<version>${revision}</version>
<properties>
<revision>5.5.3</revision>
</properties>
</project>
module1/pom.xml 内容:
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-modules</artifactId>
<version>${revision}</version>
</parent>
<packaging>jar</packaging>
<artifactId>ruoyi-ai</artifactId>
</project>
如果不做任何设置,则只能在 idea 的 maven 面板的根项目的 Lifecycle 中点击 package 才能成功。
如果直接在 module1 或者 module2 的 Lifecycle 中点击 package 则会失败,提示找不到依赖,问题的核心就是识别不了 ${revision} 变量。
有几种办法可以解决:
在子模块的 pom.xml 中也写死版本号,但是整体就不太灵活,如果需要升级版本号就需要在多处同步修改。
在根目录的命令行中执行
mvn package -pl :module1 -am -DSkipTests。在 idea 中的 maven 面板的 module1 的 Lifecycle 中,右键点击 package,选择 Modify run configuration,输入
package -pl :module1 -am -DskipTests -f pom.xml(必选),最重要的一步是,选择 Working directory 为项目根目录。然后就可以在顶部 Toolbar 中直接运行这个配置了,后续即可选中这个配置单独为这个模块进行打包。