IDEA开发中解决关于成功引入Jar但在 Maven Project视图下,Jar报错的问题

项目是一个多模块的架构,在父模块定义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>com.tonels</groupId>
    <artifactId>MultiProject</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>jpa</module>
        <module>common</module>
    </modules>


    <properties>

        <!--指定编码和JDK版本-->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>

        <!--以下是Jar的版本依赖管理-->
        <!--特别注意的是在子模块POM文件添加Jar时,要手动排除起步依赖相同的Jar-->

        <hutool-all.version>4.5.10</hutool-all.version>
        <guava.version>28.0-jre</guava.version>
        <lombok.version>1.16.22</lombok.version>

        <!--这些是Spring相关的Jar-->
        <spring-boot.version>2.0.8.RELEASE</spring-boot.version>

    </properties>



    <!--放公共Jar的地方-->
    <dependencyManagement>



    </dependencyManagement>

    <!--配置三个Repo地址,本地还有,阿里,Maven中央仓库-->
    <repositories>
        <repository>
            <id>LocalRepo</id>
            <url>D:/repository/</url>
        </repository><repository>
            <id>mvnrepository</id>
            <url>http://mvnrepository.com/</url>
        </repository><repository>
            <id>maven-ali</id>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
                <checksumPolicy>fail</checksumPolicy>
            </snapshots>
        </repository>
    </repositories>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <attach>true</attach>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase><!--指定绑定的声明周期阶段-->
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <!--<profiles>-->
        <!--<profile>-->
            <!--<id>dev</id>-->
            <!--<activation>-->
                <!--<activeByDefault>true</activeByDefault>-->
            <!--</activation>-->
            <!--<properties>-->
                <!--<spring.profiles.active>dev</spring.profiles.active>-->
            <!--</properties>-->
        <!--</profile>-->
        <!--<profile>-->
            <!--<id>test</id>-->
            <!--<properties>-->
                <!--<spring.profiles.active>test</spring.profiles.active>-->
            <!--</properties>-->
        <!--</profile>-->

        <!--<profile>-->
            <!--<id>prod</id>-->
            <!--<properties>-->
                <!--<spring.profiles.active>prod</spring.profiles.active>-->
            <!--</properties>-->
        <!--</profile>-->
    <!--</profiles>-->



</project>

在子模块中,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>
        <artifactId>MultiProject</artifactId>
        <groupId>com.tonels</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <artifactId>common</artifactId>

    <dependencies>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>${hutool-all.version}</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>${guava.version}</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
        </dependency>


    </dependencies>


</project>

${hutool-all.version},这个是引入父工程中定义的Jar版本,会成功引入父工程的版本,但有时会在Maven Project视图下,报错,可以直接指定该依赖包的版本号,类似  <version>28.0-jre</version>,就不会报错了

全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务