2012-01-30 1 views

답변

40

src/main/resources 디렉토리에 아무것도 넣지 않으면 기본적으로 최종 *.jar이됩니다.

  1. *.jar 제대로로드되지 않습니다 (경로에 어쩌면 입력 - 오?)
  2. : 당신은 다른 프로젝트에서 그것을 참조하고이 클래스 경로에서 찾을 수없는 경우에, 당신은 그 두 가지 실수를했다
  3. 당신은 예를 들어, 리소스를 올바르게 해결되지 않습니다 /src/main/resources/conf/settings.propertiesclasspath:conf/settings.properties
+2

URL 프로토콜 "classpath :"는 Spring에만 해당됩니다. – simon

51

클래스 경로를 강화하는 것입니다 SRC의 하위 폴더/주/자원로 설정 파일을 가하고의 청소기 대안으로 클래스 경로에 볼 수있다 위치. Maven을 사용하는 것은 매우 쉽습니다. 예를 들어

, 새 폴더에/주요 SRC/설정을, 재산 파일을 배치하고 치어에 다음을 추가 SRC에서 지금부터

<build> 
    <resources> 
     <resource> 
      <directory>src/main/config</directory> 
     </resource> 
    </resources> 
</build> 

, 모든 파일 파일을/

<plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <configuration> 
       <excludes> 
        <exclude>my-config.properties</exclude> 
       </excludes> 
      </configuration> 
     </plugin> 
    </plugins> 
,691 : 그냥 빌드 섹션에 추가 : 주/설정
는 클래스 패스 (필요한 경우 최종 항아리에서 그 중 일부를 제외 할 수 있습니다의 한 부분으로 간주된다

그래서 my-config.properties은 IDE에서 앱을 실행할 때 classpath에서 찾을 수 있지만 최종 배포에서는 jar 파일의 외부에 남습니다.

+1

+1 | 이 기능에 대한 참조 문서를 살펴보십시오. http://maven.apache.org/pom.html#Resources – rwitzel

+1

"클리너"로 문제를 해결할 수는 있지만 적어도 디렉토리 구조를 수정할 수 없습니다. 국제 대회 다음으로 항상 깨끗합니다. – StormeHawke