2013-12-10 80 views
1

我使用Maven的覆盖,包括在POM依赖战争如下Maven的覆盖和码头插件

<dependency> 
    <groupId>com.test.dependent</groupId> 
    <artifactId>dependent</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <type>war</type> 
    <scope>runtime</scope> 
</dependency> 

生成的WAR文件看起来不错,它包含了资源在这两个项目中,如果我把它部署到我的Tomcat服务器一切正常。

但是我习惯了使用码头插件在Maven和运行我建立与目标码头:运行

<build> 
    <plugins> 
    <plugin> 
    <groupId>org.mortbay.jetty</groupId> 
    <artifactId>maven-jetty-plugin</artifactId> 
    <version>6.1.10</version> 
    </plugin> 
    </plugins> 
    <finalName>myproject</finalName> 
</build> 

不幸的是,它看起来像码头将不包括从依赖项目的文件。我怎样才能配置插件来考虑相关的项目?

回答

0

我不知道该maven-war-plugin包覆盖自动(我总是添加一个明确<overlays>部分的配置),但如果这是真的,只需运行mvn package jetty:run应该工作,因为jetty:run还检查目标目录。

+0

这似乎没有帮助,虽然在我的目标文件夹中,它看起来像所有文件将在那里,所以他们在战争文件中,来自依赖项目的文件不能通过浏览器访问 – Paul

+0

只需注意: jetty我得到日志消息 [INFO] Webapp目录= C:\ Users \ paul \ develop \ myproject \ src \ main \ webapp 在这个文件中我当然没有来自依赖项目的文件。任何想法如何配置码头为了从目标文件? – Paul

+1

@Paul:除了上述war-plugin配置中覆盖层的明确定义之外,我不知道 - 否则它对我来说是非常有用的。尽管('6.1.25'),我确实使用了更新版本的'maven-jetty-plugin'。 –

0

Jetty 7.0.2 and higher可以使用jetty:rununpackOverlays配置:

<webAppConfig> 
    ... 
    <unpackOverlays>true</unpackOverlays> 
    ...   
</webAppConfig> 

在码头6,你唯一的选择就是使用jetty:run-war了点。