我想添加一個XML文件到我的項目的依賴關係。在這樣做的過程中,我一直非常成功,但不幸的是我發現我的XML文件沒有添加到類路徑中(哪種類型是有意義的,因爲它不是jar文件)。添加一個非jar依賴項到我的maven項目
我希望在我的類路徑中擁有XML文件的原因是我可以將它作爲資源加載。
如果推薦使用這種方法,推薦使用什麼方法?
謝謝
我想添加一個XML文件到我的項目的依賴關係。在這樣做的過程中,我一直非常成功,但不幸的是我發現我的XML文件沒有添加到類路徑中(哪種類型是有意義的,因爲它不是jar文件)。添加一個非jar依賴項到我的maven項目
我希望在我的類路徑中擁有XML文件的原因是我可以將它作爲資源加載。
如果推薦使用這種方法,推薦使用什麼方法?
謝謝
是的,把它放在資源文件夾中。默認爲src\main\resources
。如果你在那裏放置一個文件,它將在你的類路徑中變得可用。
或者,你可以修改你的pom來說你的xml文件所在的文件夾是一個資源文件夾。但是,我認爲這是一個不好的做法如果您的xml文件在您的src\main\java
目錄下。
您需要將該文件放在src/main/resources中。之後,該文件在類路徑中可用。然後它可以被讀取:
// Foo.class
// assuming xml file is foo.xml
InputStream is = Foo.class.getResourceAsStream("foo.xml");
當你在pom.xml中提到它們時,Maven使用你的項目的資源文件夾。這是一個pom的樣本。任何添加爲資源的東西都可以在您的類路徑中使用,並且可以在您的代碼中訪問。
<build>
<finalName>Examples</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/config</directory>
</resource>
</resources>
</build>
此解決方案適用於我。我正在使用Nexus存儲庫中的WMQ表格通道文件。
<dependency>
<groupId>wmq</groupId>
<artifactId>wmq-channel-tab-file</artifactId>
<version>1.0.0</version>
<type>tab</type>
</dependency>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>wmq</groupId>
<artifactId>wmq-channel-tab-file</artifactId>
<version>1.0.0</version>
<type>tab</type>
<overWrite>true</overWrite>
<outputDirectory>${project.build.directory}/${project.artifactId}-${project.version}/WEB-INF/classes</outputDirectory>
<destFileName>wmq-channel-tab-file.tab</destFileName>
</artifactItem>
</artifactItems>
<!-- other configurations here -->
</configuration>
</execution>
</executions>
</plugin>
我不希望XML在我的jar文件中。它必須直接部署在文件系統上,以便我可以在外部庫中使用它。 – aeneid
@ user2444735爲什麼?它是否總是在同一個名稱相同的位置?即使在其他人的電腦上? –
XML文件是我正在使用的某個庫的配置文件。我只能指定XML在文件系統上的位置以供庫使用。我希望能夠通過將其定位爲資源並獲取其在文件系統上的位置來實現這一點。我不能使用常量路徑,因爲它將位於不同的地方,這取決於我正在使用的環境。 – aeneid