使用poi-ooxml破坏资源提供
我正在尝试使用外部configuration文件来制作jar文件。 使用poi-ooxml库之前一切正常。 之后我遇到资源提供的问题。 我使用下一个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>xxx</groupId> <artifactId>yyy</artifactId> <version>0.1</version> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.6</version> <configuration> <archive> <manifest> <mainClass>zzz</mainClass> </manifest> <manifestEntries> <Class-Path>./configs/</Class-Path> </manifestEntries> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.3</version> <configuration> <excludes> <exclude>**/*.properties</exclude> </excludes> <archive> <manifestEntries> <Class-Path>configs/</Class-Path> </manifestEntries> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.3</version> <executions> <execution> <id>copy-resources</id> <phase>install</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${basedir}/target/configs</outputDirectory> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> </includes> </resource> </resources> </configuration> </execution> </executions> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.9</version> </dependency> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc14</artifactId> <version>10.2.0.3.0</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>RELEASE</version> <scope>test</scope> </dependency> <dependency> <groupId>xxx</groupId> <artifactId>core</artifactId> <version>LATEST</version> </dependency> </dependencies> </project>
我在这条线上失败了:
LogManager.getLogManager().readConfiguration(MethodHandles.lookup().lookupClass().getClassLoader().getResourceAsStream(fileName));
getResourceAsStream返回null,但是当我从POM文件中删除poi-ooxml依赖时,一切正常。
问题是在Apache Assembly插件。 改为使用Apache Shade插件。 https://maven.apache.org/plugins/maven-shade-plugin/
- Apache POI – 在Excel中设置左/右打印边距
- response.flushBuffer()给我一个错误,同时在客户端以编程方式打开excel文件
- 维护从XML到Excel文件的层次结构 – Java
- 用电子邮件validation生成使用Apache poi的Excel表
- Excel中的公式不考虑单元格中dynamic生成的值
- Apache POI事件API更新现有的Excel工作表
- 使用java POI在Excel中打印数据
- 使用StreamingOutput对象写入excel文件。 (java.lang.ClassCastException)
- 使用java将数据列表写入Excel文件中的特定列所需的帮助