2017-09-07 3 views
1

intellij가 gradle 프로젝트 및 resources 폴더로 작업하는 방법을 이해하는 데 문제가 있습니다.intellij, gradle 프로젝트 및 리소스 폴더 및 파일 생성을위한 논리 루트

나는 기본 Gradle을 프로젝트가 모듈 '그룹'과

src/main/resources 폴더는 '자원 폴더'로 표시 모듈 그룹에보고 모듈을 생성 (그러나 그것은 나던 만든 그루비/자바/자원이 모두 회색 독립 모듈)에

enter image description here

는 그래서 밖으로 정렬 일반적으로 코드를 컴파일 할 때 작동하는 것 같다.

나는, 그러나 그것은 파일이 상대 루트 .../src/main/groovy/playpen을 갖고있는 것 같아요이

creating new file:/D:/Intellij - Azure/quickstart-java/graph/src/main/groovy/playpen/resources/temp.txt file 
Caught: java.io.IOException: The system cannot find the path specified 
java.io.IOException: The system cannot find the path specified 
    at java_io_File$createNewFile$1.call(Unknown Source) 
    at playpen.TinkerPop-Example.run(TinkerPop-Example.groovy:47) 

같은 비트에 실패 당신이 실행 실행이

File newFile = new File ("resources/temp.txt") 
def fpath = newFile.toURL() 
if (!newFile.exists()) { 
    println "creating new $fpath file " 
    newFile.createNewFile() 
} 

같은 그루비 스크립트 파일을 만들 수 있지만 시도하는 내 대본이있는 곳입니다. src/main/groovy/playpen/resources/이 없으므로

File("/resources/temp.txt") and look at the URL it shows as D : \ resources \ temp.txt를 사용하는 경우 스크립트가 정의 된 드라이브와 동일한 기본값으로 사용됩니다.

리소스 접두어를 제거하면 파일이 재생 모드로 만들어지고 다시 루트가 원본 프로그램 스크립트와 동일하게 간주됩니다.

내가 원하는 것은 'resources'폴더에서 파일을 읽는 것이지만 절대 파일 경로로 이동하지 않으면 'resources'폴더를 무시하고 Groovy 원본 폴더 만 찾습니다.

그래서 예를 들어 나는 resources 폴더에 TEMP.TXT를 복사하고 그냥 스크립트가 실행하고 표시되지 않는 놀이 틀 패키지에 새로운 TEMP.TXT를 생성이

File newFile = new File ("temp.txt") 
def fpath = newFile.toURL() 
if (!newFile.exists()) { 
    println "creating new $fpath file " 
    newFile.createNewFile() 
} else { 
    println "reading file at $fpath" 
} 

를 실행하는 경우 절대 파일 이름

똑같이 '원하는 경우를 사용하지 않고 -'자원 '폴더

그래서'파일 이름 '의 형식으로 할 내가'자원 '폴더가 자연적으로 파일 이름을 확인하는 데 사용되도록 사용 복사 programatical 파일을 만드는 방법 그리고 그 파일을 src/main/groovy/playpen에서 실행하는 'resources'폴더에 저장합니다. 올바른 위치에 넣을 경로 이름은 무엇입니까?

저는 여기에 기본적인 것이 빠져 있습니다. 읽기/쓰기 방법을 이해하지 못합니다. resources 폴더.

사람은 src/main/resources 디렉토리 ID가

답변

0

이 하나의 폭력과 무지와 종료 방법을 알고 매우 기뻐 프로젝트에 상대적 있도록 내가 프로그래밍 방식으로 파일의 이름을 어떻게 설명 할 수있는 경우 -이있을 수 있습니다 사람 ' 더 똑똑한 답변이지만,이 부분은 효과가있는 것처럼 보입니다. 약간의 코드를 약간 수정했다. (1) 처음은 System.getProperty를 사용하여 IDE/프로젝트의 루트 위치를 확인합니다 ("사용자 -

나는 끝내 여기보다는 자바 (단지 적은 보일러 소음), 좋은 파일 그루비 방법

단계를 사용하고 있습니다 .dir ") (2) 'this'에 대한 현재 리소스 파일을 얻으십시오 - ide 디렉토리에서 실행하는 클래스 (3) 리소스가 $ root/out/test/..에 있는지 확인하십시오. 그렇지 않으면 정상 코드입니다. (4) src/main/resources 또는 src/test/resources/중 하나에서 'location'을 수정하도록 resourcePath를 설정하십시오. -이 스텁에서 나머지 파일을 빌드하십시오. (5) 파일이 존재하는지 확인하십시오. (이게 더 명료하게 만들 수 있습니다) (6) 파일을 만들고 내용을 작성하십시오.

작업이 파일은 이제 예상 한 곳에 나타나야합니다. 행복하게 할 수있는 더 기발한 방법을 가져서 기쁘다. 그러나 붙인 다른 사람에게는 이것이 트릭을하는 것 같다.

관련 문제