动态WebProject导入另一个项目和依赖项

时间:2015-06-19 22:45:21

标签: java eclipse jar eclipse-indigo

我有一个动态的Web项目,我们称之为“项目A”和另一个常规的java项目,我们将在eclipse中称之为“项目B”。我已经通过进入项目属性将项目b添加到B到项目A. Properties -> Deployment Assembly -> Add -> Project。 这样可以将jar“project B.jar”添加到项目A / WEB-INF / lib文件夹中。但是,在“项目B”中配置的外部jar文件不包含在“项目B.jar”中。另外我去了 project b -> Properties -> Java Build Path -> Order and Export 我检查了“项目B”的所有必需依赖项,它仍然没有包含在jar中。我如何让eclipse将这些罐子包含在“project B.jar”文件中。

如果你需要知道我正在使用eclipse Indigo而我们没有在这个项目中使用mavin,那么我们只需要这个jar。提前致谢。

1 个答案:

答案 0 :(得分:0)

您应该将项目B转换为分面形式(转到项目属性,"项目构面" - >"转换为分面形式......")。唯一需要的方面是" Java"和"实用程序模块"。如果我没记错的话,那时Eclipse会给你一个警告,指出在项目A的运行时可能会缺少那些额外的JAR依赖项,为你提供快速修复选项以将它们添加为依赖项。这将为项目B的.classpath文件添加attributes元素,用于每个引用的JAR文件,例如:

<classpathentry exported="true" kind="lib" path="lib/commons-beanutils-1.9.2.jar">
   <attributes>
      <attribute name="org.eclipse.jst.component.dependency" value="../"/>
   </attributes>
</classpathentry>

不必包含的JAR将改为获取此属性:

<attributes>
   <attribute name="org.eclipse.jst.component.nondependency" value=""/>
</attributes>

如果您没有收到警告,则可以直接添加attributes元素。注意:这完全适用于Eclipse Luna,但我知道至少在开普勒它已经像这样工作了。