0

I have basic dependencies in pom.xml

<dependencies>

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>${org.springframework.version}</version>
</dependency>

<dependency>
  <groupId>org.aspectj</groupId>
  <artifactId>aspectjweaver</artifactId>
  <version>1.7.3</version>
</dependency>
<dependency>
  <groupId>org.aspectj</groupId>
  <artifactId>aspectjrt</artifactId>
  <version>1.6.11</version>
</dependency>

<dependency>
  <groupId>org.codehaus.jackson</groupId>
  <artifactId>jackson-mapper-asl</artifactId>
  <version>1.9.12</version>
</dependency>

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>${org.springframework.version}</version>
</dependency>

<!-- mybatis -->
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-spring</artifactId>
  <version>${org.mybatis.spring.version}</version>
</dependency>
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>${org.mybatis.version}</version>
</dependency>

<!-- data source -->
<dependency>
  <groupId>commons-dbcp</groupId>
  <artifactId>commons-dbcp</artifactId>
  <version>1.4</version>
  <!--<scope>runtime</scope>-->
</dependency>
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.6</version>
</dependency>

<!-- log -->
<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
  <version>1.1.2</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-core</artifactId>
  <version>1.1.2</version>
  <scope>compile</scope>
</dependency>

<!-- spring test -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-test</artifactId>
  <version>${org.springframework.version}</version>
</dependency>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <!--<scope>test</scope>-->
</dependency>

<!-- mybatis pager -->
<dependency>
  <groupId>com.github.pagehelper</groupId>
  <artifactId>pagehelper</artifactId>
  <version>4.1.0</version>
</dependency>
<dependency>
  <groupId>com.github.miemiedev</groupId>
  <artifactId>mybatis-paginator</artifactId>
  <version>1.2.17</version>
</dependency>
<dependency>
  <groupId>com.github.jsqlparser</groupId>
  <artifactId>jsqlparser</artifactId>
  <version>0.9.4</version>
</dependency>

There is a class org.springframework.web.multipart.commons.CommonsMultipartResolver which belong to spring-web.jar, and this class also depend on class org.apache.commons.fileupload.FileItemFactory; so if I have spring-web.jar imported, the lib commons-fileupload which class org.apache.commons.fileupload.FileItemFactory belong to should be automatically imported.

But now, I got error that class org/apache/commons/fileupload/FileItemFactory not found when I append the following code in mvc xml config file:

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="10485760" />
    <property name="maxInMemorySize" value="4096" />
    <property name="defaultEncoding" value="UTF-8" />
</bean>

I want to know why the maven do not import lib commons-fileupload

pain
  • 319
  • 2
  • 4
  • 18
  • Use `mvn dependency:tree` to look up the dependency tree and see if your desired jar is loaded transitively. Besides: If you (in your code) directly use a class, you should declare the dependency which contains that class directly. – J Fabian Meier Oct 25 '17 at 07:53
  • I have ran command `mvn dependency:tree`, and the desired jar common-fileupload is not found, so that means commom-fileupload.jar is not loaded transitively and I should import directly – pain Oct 25 '17 at 08:11
  • @pain Yes exactly as JF Meier already explained. – khmarbaise Oct 25 '17 at 10:20

0 Answers0