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>
当我从Eclipse构建干净安装时,目标文件夹通常不会生成资源文件夹。其他人遭受的一个错误。我认为这可以通过在目标文件夹中手动创建资源文件夹来解决,但这不是很有用。但即使我这样做,我似乎也无法使用这些资源:
我的代码:
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);
}
}
}
我还尝试使用前导&#34; /&#34; FindNReplaceDictionary.txt;但没有快乐。
所以在这里处理我的困惑是我的问题 1.如何在Eclipse中引用资源,以便至少可以将其作为java项目运行 2.一旦Maven项目经历了构建清理安装,我如何引用资源 3.在作为Java项目运行和执行Maven构建之间是否需要更改任何内容
是的我对整件事感到困惑。
答案 0 :(得分:1)
&#34;资源中的文物&#34;文件夹被复制到最终打包/编译的类路径。在Web应用程序的情况下,它将是“WEB-INF / classes&#39;其他情况下,它将进入&#39;类&#39;夹。
如果您想要另一个资源文件夹,可以在构建
中指定<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/anotherresourcesfolder</directory>
</resource>
</resources>
</build>
你将无法轻易地将maven项目更改为eclipse项目,因为maven具有标准的自定义文件夹结构