2016-09-15 49 views
1

我想用外部配置文件製作jar文件。在使用poi-ooxml庫之前一切正常。之後,我遇到了資源提供問題。我用接下來的pom.xml:使用poi-ooxml打破資源提供

<?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依賴一切工作正常。

回答