Maven에서 생성 된 jar에서 리소스를 제외하는 방법은 무엇입니까?
이 가이드를 사용하여 파일 이있는 실행 가능한 가능한 jar를 만들면 모든 속성도 해당 jar에 패키지됩니다. 발생을 막는 방법? 감사합니다.
업데이트 : Maven 리소스 설치를 사용하여 Eclipse에서 사용할 때 내 응용 프로그램이 속성-> Java 응용 프로그램을 마우스 오른쪽 버튼 클릭으로 사용할 수 없습니다.
업데이트 : 유용한 답변에 감사드립니다. Maven을 배우는 데 시간을 것이 더 좋을 것입니다. 지금은 가장 간단한 솔루션을 선택하기 만하면됩니다.
해당 속성 파일을 src/test/resources
. 의 파일은 src/test/resources
이클립스 내에서 자동으로 사용할 수 eclipse:eclipse
없습니다.
jar / target 디렉토리에서 파일을 제외하고 <excludes>
pom.xml 태그를 사용할 수 있습니다 .
예에서는 다음 .properties
확장자가있는 모든 파일 이 포함되지 않습니다.
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>*.properties</exclude>
</excludes>
<filtering>false</filtering>
</resource>
</resources>
</build>
규칙에 따라 디렉토리 src/main/resources
에는 애플리케이션에서 사용할 리소스가 포함됩니다. 따라서 Maven은 최종 JAR
.
응용 프로그램 따라서 getResourceAsStream()
에서 리소스가 클래스 경로에로드 되므로 메서드를 사용하여 액세스합니다 .
애플리케이션 외부에 필요한 경우 src/main/resources
Maven에서 제공 하는 저장하지 않습니다 . 그것들을 제외 물론 할 수 는 있지만 ( chkal에서 제공 한-link를 사용하여 ) 디렉토리 src/main/external-resources
와 관련된 규칙을 유지하려면 다른 디렉토리 (예 : 를 만드는 것이 좋습니다 src/main/resources
.
후자의 경우 리소스를 JAR 파일로 독립적으로 전달해야합니다 (어셈블리를 사용하여 수행 할 수 있음). 당신이 당신의 이클립스 환경에서 액세스해야하는 경우에 Properties
다음에, 프로젝트의 Java Build Path
에서 Sources
(예를 들어, 폴더를 추가, 탭 src/main/external-resources
). Eclipse는 디렉토리를 클래스 경로에 추가합니다.
에있는 속성 파일을 src/main/resources
의미? 그런 다음 maven-resource-plugin을 사용하여 제외해야합니다. 자세한 내용은 다음 페이지를 참조하십시오.
http://maven.apache.org/plugins/maven-resources-plugin/examples/include-exclude.html
이것은 Maven JAR 사용을 정확히 요구합니다.
예를 들어, src/test/resources/
최종 항아리 에서 모든 항목을 제외하고 다음을 입력하십시오.
<build>
<plugins>
<!-- configure JAR build -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<excludes>
<exclude>src/test/resources/**</exclude>
</excludes>
</configuration>
</plugin>
...
아래의 파일 src/test/resources/
은 여전히 클래스 경로에서 사용할 수 있으며
maven-jar-plugin을 사용하여 maven jar를 생성하는 동안 특정 파일 패턴을 제외합니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3</version>
<configuration>
<excludes>
<exclude>**/*.properties</exclude>
<exclude>**/*.xml</exclude>
<exclude>**/*.exe</exclude>
<exclude>**/*.java</exclude>
<exclude>**/*.xls</exclude>
</excludes>
</configuration>
</plugin>
이 가이드를 사용하여 파일이있는 실행 가능한 가능한 jar를 만들면 모든 속성도 해당 jar에 패키지됩니다. 발생을 막는 방법? 감사합니다.
어디에서 속성 파일? 메인 병? 의존성?
전자의 경우 src/test/resources
제안 된 대로 리소스를 배치하는 것이 아마도 가장 간단하고 간단한 옵션 일 것입니다.
나중의 경우 .NET Framework에서 특수한 사용자 지정 어셈블리 설명 계속 excludes/exclude
합니다 .unpackOptions
또 다른 가능성은 Maven Shade 을 사용하는 것입니다 . 예를 들어 IDE에서 로컬로만 사용되는 로깅 속성 파일을 제외합니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>${maven-shade-plugin-version}</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>log4j2.xml</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
그러나 이것은 모든 아티팩트에서 파일을 제외하므로 모든 상황에서 실행 가능하지 않을 수 있습니다.
참조 URL : https://stackoverflow.com/questions/4113697/in-maven-how-to-exclude-resources-from-the-generated-jar
'ProgramingTip' 카테고리의 다른 글
쿼리를 사용하여 기존 테이블에 대한 SQL 작성 펼쳐 (0) | 2020.12.28 |
---|---|
ASP.NET MVC 로그인 ReturnUrl이 항상 NULL입니까? (0) | 2020.12.28 |
byte []로 드로어 블 (0) | 2020.12.28 |
Java의 NoClassDefFoundError : com / google / common / base / Function (0) | 2020.12.28 |
배경 이미지 위치 지정, 패딩 추가 (0) | 2020.12.28 |