与maven-war-plugin的Maven WAR依赖 - 与eclipse构建冲突

时间:2014-05-07 13:43:34

标签: maven war

我有一个包含java代码的战争 - 并且需要使其他代码依赖于war中包含的代码。 我在其他地方读过有关使用

的内容
<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <attachClasses>true</attachClasses>
    </configuration>
</plugin>

工作正常。 我建立了原始的战争和一个新的罐子

search-classes.jar
search.war

项目可以在命令行上以两种方式编译(1),在eclipse中使用mvn(2)作为标准项目(不是maven项目) - 这就是我的公司如何做到的!

因此,我正在使用eclipse编译mvn命令行上的eclipse,但这使得原始项目现在依赖于eclipse .classpath文件中的自身。

这是项目搜索战的.classpath文件现在包含行

<classpathentry kind="src" path="/search-war"/>

我需要在每次maven构建之后手动编辑(在eclipse中)。 有什么方法可以解决这个问题吗?

Solution:

There is a bug in the eclipse plugin.
But it only shows up under specific conditions...
The war was being renamed using the build/fileName tags. 
When i disabled this - the problem disappeared - and all is fine.
(I just renamed the war in a post-build shell script instead).

1 个答案:

答案 0 :(得分:1)

不是没有拆分项目,即为代码创建一个单独的模块(只创建一个jar文件)并将其设置为战争中的依赖项以及需要它的任何其他项目。

这种方式更清晰,使用eclipse:eclipse以及m2e工作,并且在多模块构建中没有子问题(例如,当仅运行mvn compile时,使用附加工件无法正常工作)。

作为一般规则:不要对代码使用附加工件(带分类器)。