学习 Java 报表技术导入 Maven 依赖出错:jacob 无法下载、jasperreports 依赖错误
发生缘由
最近在做一个可视化项目,用到了 Java 报表技术。在跟着「
-
com.jacob 包无法下载
-
Failed to read artifact descriptor for com.lowagie:itext:jar:2.1.7.js6
运行环境
-
电脑系统版本:Windows 10 64bit
-
Idea:2023.2 (Ultimate Edition)
-
Maven:apache-maven-3.6.0
问题解决
解决 jacob 包问题
既然阿里云无法下载,那么直接从 GitHub 下载即可。文件也不大,才500KB,所以使用下面哪种方式都可以。
# 将压缩包下载本地并解压 E:\JAVA\jar\jacob-1.20> dir 驱动器 E 中的卷是 软件 卷的序列号是 9692-5EC7 2020-09-25 06:22 <DIR> . 2020-09-25 06:22 <DIR> .. 2020-09-24 23:21 <DIR> docs 2020-09-25 06:16 226,816 jacob-1.20-x64.dll 2020-09-25 06:16 189,440 jacob-1.20-x86.dll 2020-09-25 06:15 49,913 jacob.jar 2020-09-24 23:21 26,440 LICENSE.TXT 4 个文件 492,609 字节 3 个目录 52,337,233,920 可用字节 # 安装到 Maven 仓库中 E:\JAVA\jar\jacob-1.20>mvn install:install-file -DgroupId=com.jacob -DartifactId=jacob -Dversion=1.20 -Dpackaging=jar -Dfile=jacob.jar
解决 jasperreports 依赖
这个是重复依赖问题,只需要在导入其的时候将有影响的包排除掉即可。
<dependency> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports</artifactId> <version>6.5.0</version> <exclusions> <!-- JasperReports报表生成工具对Itext进行了封装,简化了pdf输出的过程。 有可能导入依赖报错提示 com.lowagie:itext失败 我们只需要排除对com.lowagie:itext:jar的读取即可 --> <exclusion> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> </exclusion> <!-- 排除olap4j依赖 --> <exclusion> <groupId>org.olap4j</groupId> <artifactId>olap4j</artifactId> </exclusion> </exclusions> </dependency>
<dependencies> <!-- SpringBoot依赖 --> <!-- SpringBootWeb项目依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- SpringBoot测试依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <!-- SpringBoot整合MyBatis --> <!-- MySQL驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <!-- mapper-spring-boot-starter链接Spring Boot和MyBatis,构建基于Spring Boot的MyBatis应用程序 1. 自动检测现有的DataSource 2. 将创建并注册SqlSessionFactory的实例,该实例使用SqlSessionFactoryBean将该DataSource作为输入进行传递 3. 将创建并注册从SqlSessionFactory中获取的SqlSessionTemplate的实例。 4. 自动扫描mappers,将它们链接到SqlSessionTemplate并将其注册到Spring上下文,以便将它们注入到bean中。 5. 使用了该Starter之后,只需要定义一个DataSource即可(配置文件可配置), 它会自动创建使用该DataSource的SqlSessionFactoryBean以及SqlSessionTemplate。 会自动扫描你的Mappers,连接到SqlSessionTemplate,并注册到Spring上下文中。 --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency> <!-- 分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.10</version> </dependency> <!-- Java操作各种类型的报表 --> <!-- Java操作excel --> <dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifactId>jxl</artifactId> <version>2.6.12</version> </dependency> <!-- Java操控excel后缀为xls的表 --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.0.1</version> </dependency> <!-- Java操控excel后缀为xlsx的表 --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.0.1</version> </dependency> <!-- Java操作ooxml。 OOXML是一种开放的文档标准,微软的Office套件,WPS的套件等生成的文件可以互相兼容。 也使用JAVA、Go等也可以操作这些文档,生成Office文件,套用模板文件,清理修改痕迹等操作。 --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>4.0.1</version> </dependency> <!-- 用于解析CSV文件的java类库 --> <dependency> <groupId>com.opencsv</groupId> <artifactId>opencsv</artifactId> <version>4.5</version> </dependency> <!-- Java操作office套件 --> <!-- 该jar包使用阿里云镜像无法下载,可以直接从github下载然后install到Maven本地仓库中 1. https://github.com/freemansoft/jacob-project/releases 2. mvn install:install-file -DgroupId=com.jacob -DartifactId=jacob -Dversion=1.20 -Dpackaging=jar -Dfile=jacob.jar --> <dependency> <groupId>com.jacob</groupId> <artifactId>jacob</artifactId> <version>1.20</version> </dependency> <!-- 报表生成 --> <!-- 开源报表生成工具 --> <dependency> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports</artifactId> <version>6.5.0</version> <!--排除itext,jar读取--> <exclusions> <!-- JasperReports报表生成工具对Itext进行了封装,简化了pdf输出的过程。 有可能导入依赖报错提示 com.lowagie:itext失败 我们只需要排除对com.lowagie:itext:jar的读取即可 --> <exclusion> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> </exclusion> <!-- 排除olap4j依赖 --> <exclusion> <groupId>org.olap4j</groupId> <artifactId>olap4j</artifactId> </exclusion> </exclusions> </dependency> <!-- OLAP4J一个类似于JDBC驱动,能够用于访问任何OLAP服务器的Java公共类包。 --> <dependency> <groupId>org.olap4j</groupId> <artifactId>olap4j</artifactId> <version>1.2.0</version> </dependency> <!-- 可以将XML、Html文件转化为PDF文件 --> <dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> <version>2.1.7</version> </dependency> <!-- 图表绘制类库 --> <dependency> <groupId>org.jfree</groupId> <artifactId>jfreechart</artifactId> <version>1.5.0</version> </dependency> <!-- 其他包 --> <!-- Lombok简化实体类开发 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!-- 常用工具类包 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> </dependencies>