I했습니다 다음 디렉토리 구조가 드롭 마법사 프로젝트 :
basedir
pom.xml
config.yml
src
main
resources
myresource.xml
The build portion of
<build>
<finalName>project-${version}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>project-package.App</mainClass>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer">
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
I을 이클립스에서 내 코드를 실행하면 다음과 같이 명령어를 사용한다.
$ mypackage.App 서버 config.yml
잘 작동하고 resources 디렉토리 아래에있는 파일을 읽을 수있다. mvn을 사용하여 작성한 스냅 샷 jar에는 config.yml이 포함되지 않으며 basedir의 snapshot.jar에 포함되어 있어도 "myresource.xml"에 대한 경로가 누락되었습니다. 그래서, 내 항아리 파일에서 실행할 때 내 코드는 리소스로 찾지 않습니다. pom.xml을 config.yml을 포함하도록 변경하고 자원 디렉토리가 자원으로 액세스 할 수 있도록 패키지화해야합니다.
'dropwizard'의 설정의 주요 아이디어는 설정을 외부화하는 것입니다. dropwizard 응용 프로그램의 사용자/관리자는 주어진 시스템 및/또는 환경에서 응용 프로그램을 시작할 때 올바른 구성을 제공 할 책임이 있습니다. 아마도 알 수없는 기본 구성을 사용하지 마십시오. 당신은 실제 configs 어딘가에 (예를 들어 다른 버전 관리 저장소) 코드에서 별도로 유지. 샘플 구성을 배포 할 수 있지만 문서를 배포하는 방법이 더 많습니다. – zloster
맞습니다. config 파일은 빌드와 별도로 보관해야합니다. – user2995358