2016-10-28 8 views
-1

Mavenは非常にです。私は自分のコードでリソースを参照したいと思います。しかし、私はできません。Mavenプロジェクトからリソースを入手する方法

私はEclipseでプロジェクトをセットアップしました。その中で私は、次のような構造を持っている

src 
---main 
--------java 
------------myclasses 
-------resources 
------------sometextfiles.txt 

次のようにのpom.xmlの関連する部分は次のとおりです。私はMavenのは、クリーンのEclipseからインストールビルドないとき

<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> 

通常、ターゲットフォルダが生成されません。リソースフォルダ。他人が苦しんできたバグ。私は、これは、ターゲットフォルダ内にリソースフォルダを手動で作成するだけで解決できると思いますが、あまり役に立ちません。

マイコード:しかし、私はこれを行う場合でも、私はリソースを使用することはできていないよう

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を試してみました/ "しかし、喜びはありません。だからここに私の混乱に対処するための

は私の質問は、私は私がMavenプロジェクトいったんリソースを参照するにはどうすればよい少なくとも 2. Javaプロジェクトとして、それを実行できるように、私は、Eclipseでのリソースを参照するにはどうすればよい 1です。クリーンインストールを完了しました 3. Javaプロジェクトとして実行し、Mavenビルドを実行する間に何かを変更する必要がありますか

はい私はすべてについて混乱しています。

+0

にリソースがないので、ビルド

<build> <resources> <resource> <directory>src/main/resources</directory> </resource> <resource> <directory>src/main/anotherresourcesfolder</directory> </resource> </resources> </build> 

にあなたは、簡単にプロジェクトをEclipseにMavenプロジェクトを変更することはできませんように指定することができますフォルダを作成する必要があります。リソースフォルダにあるものは、クラスパスのルートになる場所にコピーされます。ローカルクライアントアプリケーションのjarのルート、WebアプリケーションのWEB-INF/classes。 – Gimby

答えて

1

"resources"フォルダ内の成果物は、最終的にパッケージ化され/コンパイルされたクラスパスにコピーされます。 Webアプリケーションの場合は 'WEB-INF/classes'となり、 'classes'フォルダに移動します。

あなたが別のリソースフォルダをしたい場合は、Mavenのは、標準的な独断フォルダ構造

関連する問題