Maven包引用出现重复包,去重复包3种方法(javassist)

我出现的问题是由于Hiberante中引用的包为<groupId>org.javassist</groupId>而strtus2中引用的包为<groupId>javassist</groupId>,由于引用不同,导致打包项目内含两个项目,此时布暑项目时会报错误.要去掉一个javassist包

1.使用maven中的pulgin功能

<plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-war-plugin</artifactId>

        <version>2.0.2</version>

        <configuration>

              <warSourceExcludes>WEB-INF/lib/javassist-3.11.0.GA.jar</warSourceExcludes>

       </configuration>

</plugin> 

只方法是强制去掉包,如果maven用到profiles打包方式就会启动项目时报错

2.由于知道是那个包要去掉,所以我们直接让此jar包不参与打包

<dependency>

<groupId>javassist</groupId>

<artifactId>javassist</artifactId>

<version>3.11.0.GA</version>

<scope>test</scope>

 

</dependency>

将<scope>test</scope>设置为test类型,简单粗暴,此时打包不会将包打入项目,启动不会报错

3.将包的groupId替换为一到的,我这里是将<groupId>org.javassist</groupId>替换为<groupId>javassist</groupId>

<dependency>

            <groupId>org.apache.struts</groupId>

            <artifactId>struts2-core</artifactId>

            <version>${struts2.version}</version>

            <exclusions>

                <exclusion>

                    <groupId>javassist</groupId>

                    <artifactId>javassist</artifactId>

                </exclusion>

            </exclusions>

 

        </dependency>

些方法查找原因会有些麻烦,我是借助于IDea 的Diagrams工具。查看包的引用。



 

 

 

 

 

你可能感兴趣的:(java,maven)