我有一个包含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).
答案 0 :(得分:1)
不是没有拆分项目,即为代码创建一个单独的模块(只创建一个jar文件)并将其设置为战争中的依赖项以及需要它的任何其他项目。
这种方式更清晰,使用eclipse:eclipse
以及m2e工作,并且在多模块构建中没有子问题(例如,当仅运行mvn compile
时,使用附加工件无法正常工作)。
作为一般规则:不要对代码使用附加工件(带分类器)。