首页 > 解决方案 > 作为 maven 构建的一部分,如何从 pom.xml 中的依赖项中读取所有资源文件

问题描述

作为 maven 构建的一部分,如何从 pom.xml 中的依赖项中读取所有资源文件。问题陈述:我的 pom.xml 文件中有三个依赖项,每个依赖项在资源文件夹中都有 xml 文件列表,现在我想从所有依赖项中读取所有 xml,作为使用 java 构建的一部分并创建一个 sing 文件并保存在给定的路径中。

Example : pom.xml file.
```<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.test</groupId>
  <artifactId>merge</artifactId>
  <version>0.0.1-SNAPSHOT</version>
 <dependencies>
   <dependency>
     <groupId>com.test</groupId>
     <artifactId>first</artifactId>
     <version>1.0-SNAPSHOT</version>
   </dependency>
   <dependency>
     <groupId>com.test</groupId>
     <artifactId>second</artifactId>
     <version>1.0-SNAPSHOT</version>
   </dependency>
   <dependency>
     <groupId>com.test</groupId>
     <artifactId>three</artifactId>
     <version>1.0-SNAPSHOT</version>
   </dependency>
 </dependencies>
</project>```

Resource file in dependencies : 
In "first" dependency resources.
 /src/main/resources/test/first-1.xml
 /src/main/resources/test/first-2.xml
 /src/main/resources/test/first-3.xml

In "second" dependency resources.
  /src/main/resources/test/second-1.xml
  /src/main/resources/test/second-2.xml

In "three" dependency resources.
   /src/main/resources/test/three-1.xml
   /src/main/resources/test/three-2.xml

 Expected Output:
 It should combine all above xml files and create merge-all.xml file in "merge" jar.

有一个 root.xml 文件,然后复制其他 xml 文件的内容并生成一个新的 xml 文件名。例如 :

  1. root.xml : 第一个 jar
<cache-config
 xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config/1.2/coherence-cache-config.xsd">
 <caching-scheme-mapping>
     <cache-mapping>
         <cache-name>local-cache</cache-name>
         <scheme-name>local-scheme</scheme-name>
     </cache-mapping>
 </caching-scheme-mapping>
 <caching-schemes>
     <local-scheme>
         <scheme-name>local-scheme</scheme-name>
         <eviction-policy>LRU</eviction-policy>
         <high-units>10</high-units>
         <expiry-delay>5s</expiry-delay>
     </local-scheme>
 </caching-schemes>
</cache-config> ```

2) one.xml : second jar

<?xml version="1.0"?>
<cache-config
xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config/1.2/coherence-cache-config.xsd">
<caching-scheme-mapping>
<cache-mapping>
  <cache-name>one-cache</cache-name>
  <scheme-name>local-scheme</scheme-name>
</cache-mapping>
</caching-scheme-mapping>
<caching-schemes>

</caching-schemes>
</cache-config>

out.xml : the final generated out put.
<?xml version="1.0"?>
<cache-config
xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config/1.2/coherence-cache-config.xsd">
<caching-scheme-mapping>
<cache-mapping>
  <cache-name>local-cache</cache-name>
  <scheme-name>local-scheme</scheme-name>
</cache-mapping>
<cache-mapping>
  <cache-name>one-cache</cache-name>
  <scheme-name>local-scheme</scheme-name>
</cache-mapping>
</caching-scheme-mapping>
<caching-schemes>
<local-scheme>
  <scheme-name>local-scheme</scheme-name>
  <eviction-policy>LRU</eviction-policy>
  <high-units>10</high-units>
  <expiry-delay>5s</expiry-delay>
</local-scheme>
</caching-schemes>
</cache-config>```

标签: javamaven

解决方案


推荐阅读