首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用maven-程序集-插件(或其他)将外部构件组装到一个全局目录中

如何使用maven-程序集-插件(或其他)将外部构件组装到一个全局目录中
EN

Stack Overflow用户
提问于 2011-05-06 10:03:31
回答 1查看 779关注 0票数 0

我正在对Maven进行实验,我正在尝试将最初使用shell脚本构建的项目进行Maven化。

使用Maven经验法则:一个项目,一个工件,我创建了以下结构:

代码语言:javascript
复制
<PROJECT>
  <MODULE-1>
  <MODULE-2>
  <MODULE-3>
  ..
  <MODULE-N>
  <RESOURCES>     
  <DISTRIB>

资源模块的结构如下:

代码语言:javascript
复制
<RESOURCES>/src/main/resources/<MODULE-1>/bin
<RESOURCES>/src/main/resources/<MODULE-1>/lib
<RESOURCES>/src/main/resources/<MODULE-1>/doc
<RESOURCES>/src/main/resources/<MODULE-2>/bin
<RESOURCES>/src/main/resources/<MODULE-2>/lib
<RESOURCES>/src/main/resources/<MODULE-2>/doc
...
<RESOURCES>/src/main/resources/<MODULE-N>/bin
<RESOURCES>/src/main/resources/<MODULE-N>/lib
<RESOURCES>/src/main/resources/<MODULE-N>/doc

这样做的原因是在运行时需要上面的资源,而不是编译时,它们主要是属性文件、配置文件和shell脚本来调用各种jar-文件。对于最后一个资源步骤,我希望将子目录组合到一个全局bin/lib/doc目录中。但是,在程序集描述符中没有一个选项可以去掉模块的前缀以达到我想要的目的:

代码语言:javascript
复制
 <RESOURCES>/target/resources/bin
 <RESOURCES>/target/resources/lib
 <RESOURCES>/target/resources/doc

其中bin将包含/src/main/resources//bin目录中的所有文件,/src/main/resources//bin目录等类似于lib,doc。

我的问题是:我是否应该:

代码语言:javascript
复制
<MODULE-1>/src/external/resources/bin
<MODULE-1>/src/external/resources/lib
<MODULE-1>/src/external/resources/doc
...
<MODULE-N>/src/external/resources/bin
<MODULE-N>/src/external/resources/lib
<MODULE-N>/src/external/resources/doc

结构,然后通过依赖集进行访问?这些文件不应该是各个模块的jar文件的一部分,因此不能存储在各自项目的src/main/resources中。还是我想通过使用其他maven插件来实现目标呢?

在远端模块中,我将将资源模块的输出与JAR文件和依赖项组合起来,创建一个目录结构,然后与打包工具(Solaris和WiX安装程序)一起使用。

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2011-05-10 16:58:02

在pom中,他资源模块将源目录设置为/src/main/ resources /以外的其他目录,这样它就不会将它们复制到目标文件夹中。然后使用Maven资源插件将资源文件复制到目标/bin和目标库等。

例如:

代码语言:javascript
复制
<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.4.3</version>
    <executions>
        <execution>
            <id>copy-resources</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>target/bin/</outputDirectory>
                <resources>
                    <resource>
            <directory>src/external/resources/bin</directory>
                <filtering>false</filtering>
        </resource>
        </resources>
    </configuration>
    </execution>
        <execution>
            <id>copy-resources</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>target/lib/</outputDirectory>
                <resources>
                    <resource>
            <directory>src/external/resources/lib</directory>
                <filtering>false</filtering>
        </resource>
        </resources>
    </configuration>
    </execution>
    </executions>
</plugin>`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5909806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档