How to mark package as a resource folder?

intellij-idea

Solution

This can be solved in several ways. An example of a good approach would be the following folder structure:

src
  main
     java
     resources
  test
     java
     resources

When this is done, you put all you java classes under `src/main/java/com.mycompany` package and any resources under `/src/main/resources/com/mycompany` folder.

To link them together, go to the project properties, and find the Path tab. Mark the `src/main/java` and `src/main/resources` as source folders. (see the screen-shot attached)

If you link them together, you'll be able to use getResourceAsStream() method. If you wonder why you should use the following folder structure - this is standard maven way of keeping things clean and tidy.

Problem

I have a dir structure for Intellij 12: ``` ... ...test - java - com.mycompany.myproject - package1 (contains code, etc,.) - resourcePackage (want to contain .json files but can't mark as a resource) - myOtherJunk.json - o o o - resources - aResource.json ``` The thing is if I right click on my package name (com.mycompany.myproject) I can only add packages and not directories (like that of an existing resource folder). However, I don't want to use that existing resource folder for the .json files that I'm going to read into per my test class. So, I need something to support: ``` // this already works for the resources directory per the .json file but doesn't for the // myOtherJunk.json per the resourcePackage. InputStream is = MyClassTest.class.getResourceAsStream("aResource.json"); ```

Original source

Related problems