2012-07-31 2 views
2

Maven2에서 Sigar를 사용하는 중에 오류가 발생합니다. 나는 네이티브 라이브러리 (dll 또는 .so)를 찾을 수 없다는 것을 안다. 네이티브 라이브러리를 WEB-INF/lib 디렉토리에 복사 할 수 없다는 것을 안다. 나의 질문은 "어떻게 lib 파일의 디렉토리를 Maven을 사용하는 WAR 파일의 WEB-INF/libMaven2에서 Sigar를 사용할 때의 문제

내가 복사 할 디렉토리는 다음과 같습니다. $ {basedir}/lib/ 복사 할 디렉토리 : $ {webapp.output}/WEB -INF/lib 디렉토리 (I 생각?) 여기

오류입니다 :

,536,913,632 : 여기

java.lang.UnsatisfiedLinkError: org.hyperic.sigar.Sigar.getLoadAverage() 

내 POM 파일입니다 10

<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>com.testing</groupId> 
    <artifactId>TestAgent</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>war</packaging> 

    <name>TestAgent</name> 

    <properties> 
     <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <netbeans.hint.deploy.server>gfv3ee6</netbeans.hint.deploy.server> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.apache.tomcat</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>6.0.35</version> 
     </dependency> 
     <dependency> 
      <groupId>javax</groupId> 
      <artifactId>javaee-web-api</artifactId> 
      <version>6.0</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.ini4j</groupId> 
      <artifactId>ini4j</artifactId> 
      <version>0.5.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hyperic</groupId> 
      <artifactId>sigar</artifactId> 
      <version>1.6.4</version> 
      <scope>system</scope> 
      <systemPath>${basedir}/lib/sigar.jar</systemPath> 
     </dependency>  
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.10</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>net.java.dev.jna</groupId> 
      <artifactId>jna</artifactId> 
      <version>3.4.0</version> 
     </dependency> 
     <dependency> 
      <groupId>net.java.dev.jna</groupId> 
      <artifactId>platform</artifactId> 
      <version>3.4.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.google.code.gson</groupId> 
      <artifactId>gson</artifactId> 
      <version>2.2.2</version> 
     </dependency> 
    </dependencies> 

    <build>   
     <testSourceDirectory>src/test/java</testSourceDirectory> 
     <testResources> 
      <testResource> 
       <directory>src/test/resources</directory> 
      </testResource> 
     </testResources> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
        <compilerArguments> 
         <endorseddirs>${endorsed.dir}</endorseddirs> 
        </compilerArguments> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.1.1</version> 
       <!-- <configuration> section added to pick up the WEB-INF/web.xml inside WebContent --> 
       <configuration> 
        <webResources> 
         <resource> 
          <directory>src/main/webapp</directory> 
         </resource> 
        </webResources> 
        <failOnMissingWebXml>true</failOnMissingWebXml> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-dependency-plugin</artifactId> 
       <version>2.1</version> 
       <executions> 
        <execution> 
         <phase>validate</phase> 
         <goals> 
          <goal>copy</goal> 
         </goals> 
         <configuration> 
          <outputDirectory>${endorsed.dir}</outputDirectory> 
          <silent>true</silent> 
          <artifactItems> 
           <artifactItem> 
            <groupId>javax</groupId> 
            <artifactId>javaee-endorsed-api</artifactId> 
            <version>6.0</version> 
            <type>jar</type> 
           </artifactItem> 
          </artifactItems> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
    <repositories> 
     <repository> 
      <url>http://download.eclipse.org/rt/eclipselink/maven.repo/</url> 
      <id>eclipselink</id> 
      <layout>default</layout> 
      <name>Repository for library EclipseLink (JPA 2.0)</name> 
     </repository> 
    </repositories> 
</project> 

답변

1

here과 같이 추가 파일/폴더를 복사하도록 Maven War Plugin을 구성 할 수 있습니다. 아래처럼.

<configuration> 
     <webResources> 
     <resource> 
      <directory>lib</directory> 
      <!-- override the destination directory for this resource --> 
      <targetPath>WEB-INF/lib</targetPath> 
     </resource> 
     </webResources> 
    </configuration> 
+0

작동하지 않는 것 같습니다. 대상 디렉토리는 모든 파일을 lib라는 디렉토리에 저장합니다. lib 디렉토리에서 파일을 복사하지 않는 것 : – MichaelICE

+0

@MikeCurry 위의 대답에서''이 업데이트되었습니다. 내용이 올바르게 위치합니까? – Raghuram

+0

아니요, 자체 WEB-INF/WEB-INF) – MichaelICE

관련 문제