项目之间的项目间依赖关系和文件共享

时间:2012-03-07 09:44:10

标签: java eclipse maven dependencies pom.xml

我有4个项目:A,B,C和Common。

A,B,C使用Common中的一些java文件和一些XSD / XML文件。 A,B,C不应该彼此了解,而只能了解Common。 我需要在测试时找到每个项目中的Common文件(java和非java)。 我如何链接它们,以便我可以在例如找到文件。 A编写代码访问文件时?

以下是A和Common的POM:

 Common:
 <groupId>dk.myCompany.sa</groupId>
 <artifactId>common</artifactId>
 <version>0.0.3-SNAPSHOT</version>
 <packaging>jar</packaging>
 <name>common</name>
 <url>http://maven.apache.org</url>

 A
 <groupId>dk.myCompany.sa</groupId>
 <artifactId>A</artifactId>
 <version>0.0.2-SNAPSHOT</version>
 <packaging>jar</packaging>
 <dependencies>
  <dependency>
   <groupId>dk.myCompany.sa</groupId>
   <artifactId>common</artifactId>
   <version>0.0.3-SNAPSHOT</version>
  </dependency>
 </dependencies>

2 个答案:

答案 0 :(得分:1)

如果将Common作为依赖项添加,则Common的src/main/resources文件夹中的所有文件都将位于A,B和C的类路径中。因此,只要您使用getResourceAsStream加载文件(请参阅How to really read text file from classpath in Java),就可以访问这些文件。

答案 1 :(得分:0)

将A,B和C定义为Common's pom的模块:

-- common.pom
<groupId>dk.myCompany.sa</groupId>
<artifactId>common</artifactId>
<version>0.0.3-SNAPSHOT</version>
<packaging>jar</packaging>
<name>common</name>
<modules>
    <module>A</module>
    <module>B</module>
    <module>C</module>
</modules>

您可能还需要为A,B和C定义清单文件,这些文件引用其类路径上的当前常见jar。