我正在对Maven进行实验,我正在尝试将最初使用shell脚本构建的项目进行Maven化。
使用Maven经验法则:一个项目,一个工件,我创建了以下结构:
<PROJECT>
<MODULE-1>
<MODULE-2>
<MODULE-3>
..
<MODULE-N>
<RESOURCES>
<DISTRIB>资源模块的结构如下:
<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目录中。但是,在程序集描述符中没有一个选项可以去掉模块的前缀以达到我想要的目的:
<RESOURCES>/target/resources/bin
<RESOURCES>/target/resources/lib
<RESOURCES>/target/resources/doc其中bin将包含/src/main/resources//bin目录中的所有文件,/src/main/resources//bin目录等类似于lib,doc。
我的问题是:我是否应该:
<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安装程序)一起使用。
任何帮助都将不胜感激!
发布于 2011-05-10 16:58:02
在pom中,他资源模块将源目录设置为/src/main/ resources /以外的其他目录,这样它就不会将它们复制到目标文件夹中。然后使用Maven资源插件将资源文件复制到目标/bin和目标库等。
例如:
<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>`https://stackoverflow.com/questions/5909806
复制相似问题