Maven은 매우입니다. 내 코드에서 리소스를 참조하고 싶습니다. 그러나 나는 할 수 없다.Maven 프로젝트에서 리소스를 얻는 방법
Eclipse에서 프로젝트를 설정했습니다. 그것에서 나는 다음과 같은 구조를 가지고
src
---main
--------java
------------myclasses
-------resources
------------sometextfiles.txt
다음과 같이 pom.xml 파일의 관련 부분입니다 : 내가 메이븐 깨끗한 이클립스에서 설치 빌드 할 때
<build>
<finalName>MyProject</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>main.java.Console.TBB_SQLBuilder</mainClass>
</transformer>
</transformers>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
일반적으로 대상 폴더가 생성하지 않습니다 resources 폴더. 다른 사람들이 겪은 버그. 나는 이것이 대상 폴더에 리소스 폴더를 수동으로 만듦으로써 해결 될 수 있다고 생각하지만 그다지 유용하지는 않습니다. 하지만 이렇게해도 나는 자원을 사용할 수 있도록하지 않는 것 :
내 코드 :
public class Checkers {
ArrayList<String> che2=new ArrayList<String>();
static URL dictionary;
String n=null;
public Checkers() {
}
public static String FindNReplace(String n) throws IOException, URISyntaxException{
BufferedReader reader = new BufferedReader(new InputStreamReader(ClassLoader.class.getResourceAsStream("FindNReplaceDictionary.txt")),2048);
String [] split=null;
ArrayList<String> orig= new ArrayList<String>();
String [] orig_arr=null;
ArrayList<String> newDoc= new ArrayList<String>();
String [] newDoc_arr=null;
StringBuilder sb = new StringBuilder();
String line = reader.readLine();
while (line != null) {
split=line.split(":");
System.out.println("SPLIT"+split);
}
}
}
나는 또한 함께 FindNReplaceDictionary.txt을 시도했습니다는 "선도/"하지만 기쁨은 없습니다.
내 혼란을 다루려면 여기 내 질문이 있습니다 1. Java 프로젝트로 실행할 수 있도록 이클립스에서 리소스를 어떻게 참조해야합니까? 2. Maven 프로젝트를 한 번 참조하려면 어떻게해야합니까? 새로 설치를 완료했습니다 3. Java 프로젝트로 실행하고 Maven 빌드를 실행하는 사이에 아무 것도 변경해야합니까?
예 모든 것을 혼동합니다.
없음 자원 폴더를 작성해야하며, 자원 폴더에있는 것이 클래스 경로의 루트가 될 위치에 복사됩니다. 로컬 클라이언트 응용 프로그램의 jar 루트, 웹 응용 프로그램의 WEB-INF/classes. – Gimby